{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DisambiguateRecordFields #-}
{-# LANGUAGE EmptyCase #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Ouroboros.Consensus.Tracing.Era.Shelley () where
import qualified Cardano.Crypto.Hash.Class as Crypto
import qualified Cardano.Crypto.VRF.Class as Crypto
import Cardano.Ledger.Address (DirectDeposits (..))
import Cardano.Ledger.Allegra.Rules (AllegraUtxoPredFailure)
import qualified Cardano.Ledger.Allegra.Rules as Allegra
import qualified Cardano.Ledger.Alonzo.Plutus.Evaluate as Alonzo
import Cardano.Ledger.Alonzo.Rules
( AlonzoBbodyPredFailure
, AlonzoUtxoPredFailure
, AlonzoUtxosPredFailure
, AlonzoUtxowPredFailure (..)
)
import qualified Cardano.Ledger.Alonzo.Rules as Alonzo
import Cardano.Ledger.Api.Scripts (AnyEraScript)
import Cardano.Ledger.Babbage.Rules (BabbageUtxoPredFailure, BabbageUtxowPredFailure)
import qualified Cardano.Ledger.Babbage.Rules as Babbage
import Cardano.Ledger.BaseTypes (Mismatch (..), activeSlotLog, strictMaybeToMaybe)
import Cardano.Ledger.Binary (serialize')
import Cardano.Ledger.Chain
import Cardano.Ledger.Conway.Governance (govActionIdToText)
import qualified Cardano.Ledger.Conway.Rules as Conway
import qualified Cardano.Ledger.Core as Ledger
import qualified Cardano.Ledger.Core as SL
import qualified Cardano.Ledger.Dijkstra.Rules as Dijkstra
import qualified Cardano.Ledger.Hashes as Hashes
import Cardano.Ledger.Shelley.API
import Cardano.Ledger.Shelley.Rules
import Cardano.Logging
import qualified Cardano.Protocol.Crypto as Ledger
import Cardano.Protocol.TPraos.API (ChainTransitionError (ChainTransitionError))
import Cardano.Protocol.TPraos.BlockHeader (LastAppliedBlock, labBlockNo)
import Cardano.Protocol.TPraos.OCert (KESPeriod (KESPeriod))
import Cardano.Protocol.TPraos.Rules.OCert
import Cardano.Protocol.TPraos.Rules.Overlay
import Cardano.Protocol.TPraos.Rules.Prtcl
( PrtclPredicateFailure (OverlayFailure, UpdnFailure)
, PrtlSeqFailure (WrongBlockNoPrtclSeq, WrongBlockSequencePrtclSeq, WrongSlotIntervalPrtclSeq)
)
import Cardano.Protocol.TPraos.Rules.Updn (UpdnPredicateFailure)
import Cardano.Slotting.Block (BlockNo (..))
import Control.DeepSeq (NFData)
import Data.Aeson (ToJSON (..), ToJSONKey, Value (..), (.=))
import qualified Data.Aeson.Key as Aeson (fromText)
import qualified Data.Aeson.Types as Aeson
import qualified Data.ByteString.Base16 as B16
import qualified Data.List.NonEmpty as NonEmpty
import qualified Data.Map as Map
import qualified Data.Map.NonEmpty as NonEmptyMap
import Data.Set (Set)
import qualified Data.Set as Set
import qualified Data.Set.NonEmpty as NonEmptySet
import Data.Text (Text)
import qualified Data.Text as Text
import qualified Data.Text.Encoding as Text.Encoding
import qualified Ouroboros.Consensus.Protocol.Praos as Praos
import qualified Ouroboros.Consensus.Protocol.Praos.Common as Praos
import Ouroboros.Consensus.Protocol.TPraos (TPraosCannotForge (..))
import Ouroboros.Consensus.Shelley.Ledger hiding (TxId)
import qualified Ouroboros.Consensus.Shelley.Ledger as Consensus
import Ouroboros.Consensus.Shelley.Ledger.Inspect
import qualified Ouroboros.Consensus.Shelley.Protocol.EnvelopeChecks as Praos (EnvelopeError (..))
import Ouroboros.Consensus.Tracing.Era.Shelley.Render
( renderIncompleteWithdrawals
, renderMissingRedeemers
, renderRewardAccount
, renderScriptHash
, renderScriptIndex
, renderScriptIntegrityHash
)
import Ouroboros.Consensus.Tracing.Render (renderTxId)
import Ouroboros.Consensus.Util.Condense (condense)
import Ouroboros.Network.Block (SlotNo (..), blockHash, blockNo, blockSlot)
import Ouroboros.Network.Point (WithOrigin, withOriginToMaybe)
textShow :: Show a => a -> Text
textShow :: forall a. Show a => a -> Text
textShow = String -> Text
Text.pack (String -> Text) -> (a -> String) -> a -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> String
forall a. Show a => a -> String
show
jsonNonEmptySet :: ToJSON a => NonEmptySet.NonEmptySet a -> Value
jsonNonEmptySet :: forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet = Set a -> Value
forall a. ToJSON a => a -> Value
toJSON (Set a -> Value)
-> (NonEmptySet a -> Set a) -> NonEmptySet a -> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. NonEmptySet a -> Set a
forall a. NonEmptySet a -> Set a
NonEmptySet.toSet
jsonNonEmptyMap :: (ToJSONKey k, ToJSON v) => NonEmptyMap.NonEmptyMap k v -> Value
jsonNonEmptyMap :: forall k v. (ToJSONKey k, ToJSON v) => NonEmptyMap k v -> Value
jsonNonEmptyMap = Map k v -> Value
forall a. ToJSON a => a -> Value
toJSON (Map k v -> Value)
-> (NonEmptyMap k v -> Map k v) -> NonEmptyMap k v -> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. NonEmptyMap k v -> Map k v
forall k v. NonEmptyMap k v -> Map k v
NonEmptyMap.toMap
instance
ShelleyBasedEra era =>
LogFormatting (GenTx (ShelleyBlock protocol era))
where
forMachine :: DetailLevel -> GenTx (ShelleyBlock protocol era) -> Object
forMachine DetailLevel
dtal (Ouroboros.Consensus.Shelley.Ledger.ShelleyTx TxId
txid Tx TopTx era
tx) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat ([Object] -> Object) -> [Object] -> Object
forall a b. (a -> b) -> a -> b
$
(Key
"txid" Key -> Text -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (Int -> Text -> Text
Text.take Int
8 (Text -> Text) -> Text -> Text
forall a b. (a -> b) -> a -> b
$ forall blk. ConvertTxId blk => TxId (GenTx blk) -> Text
renderTxId @(ShelleyBlock protocol era) (TxId (GenTx (ShelleyBlock protocol era)) -> Text)
-> TxId (GenTx (ShelleyBlock protocol era)) -> Text
forall a b. (a -> b) -> a -> b
$ TxId -> TxId (GenTx (ShelleyBlock protocol era))
forall proto era. TxId -> TxId (GenTx (ShelleyBlock proto era))
ShelleyTxId TxId
txid))
Object -> [Object] -> [Object]
forall a. a -> [a] -> [a]
: [ Key
"tx" Key -> Text -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> Text
Text.Encoding.decodeLatin1 (ByteString -> ByteString
B16.encode (Version -> Tx TopTx era -> ByteString
forall a. EncCBOR a => Version -> a -> ByteString
serialize' (forall era. Era era => Version
SL.eraProtVerLow @era) Tx TopTx era
tx))
| DetailLevel
dtal DetailLevel -> DetailLevel -> Bool
forall a. Eq a => a -> a -> Bool
== DetailLevel
DDetailed
]
kesPeriodValue :: KESPeriod -> Value
kesPeriodValue :: KESPeriod -> Value
kesPeriodValue (KESPeriod Word
period) = Word -> Value
forall a. ToJSON a => a -> Value
toJSON Word
period
instance LogFormatting (Set (Credential Staking)) where
forMachine :: DetailLevel -> Set (Credential Staking) -> Object
forMachine DetailLevel
_dtal Set (Credential Staking)
creds =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"StakeCreds"
, Key
"stakeCreds" Key -> [Value] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (Credential Staking -> Value) -> [Credential Staking] -> [Value]
forall a b. (a -> b) -> [a] -> [b]
map Credential Staking -> Value
forall a. ToJSON a => a -> Value
toJSON (Set (Credential Staking) -> [Credential Staking]
forall a. Set a -> [a]
Set.toList Set (Credential Staking)
creds)
]
instance LogFormatting (NonEmpty.NonEmpty (KeyHash Staking)) where
forMachine :: DetailLevel -> NonEmpty (KeyHash Staking) -> Object
forMachine DetailLevel
_dtal NonEmpty (KeyHash Staking)
keyHashes =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"StakingKeyHashes"
, Key
"stakeKeyHashes" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (KeyHash Staking) -> Value
forall a. ToJSON a => a -> Value
toJSON NonEmpty (KeyHash Staking)
keyHashes
]
instance
( LogFormatting (PredicateFailure (Ledger.EraRule "DELEG" era))
, LogFormatting (PredicateFailure (Ledger.EraRule "POOL" era))
, LogFormatting (PredicateFailure (Ledger.EraRule "GOVCERT" era))
) =>
LogFormatting (Conway.ConwayCertPredFailure era)
where
forMachine :: DetailLevel -> ConwayCertPredFailure era -> Object
forMachine DetailLevel
dtal =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat ([Object] -> Object)
-> (ConwayCertPredFailure era -> [Object])
-> ConwayCertPredFailure era
-> Object
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
Conway.DelegFailure PredicateFailure (EraRule "DELEG" era)
f ->
[Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DelegFailure ", Key
"failure" Key -> Object -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= DetailLevel -> PredicateFailure (EraRule "DELEG" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "DELEG" era)
f]
Conway.PoolFailure PredicateFailure (EraRule "POOL" era)
f ->
[Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PoolFailure", Key
"failure" Key -> Object -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= DetailLevel -> PredicateFailure (EraRule "POOL" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "POOL" era)
f]
Conway.GovCertFailure PredicateFailure (EraRule "GOVCERT" era)
f ->
[Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"GovCertFailure", Key
"failure" Key -> Object -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= DetailLevel -> PredicateFailure (EraRule "GOVCERT" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "GOVCERT" era)
f]
instance LogFormatting (Conway.ConwayGovCertPredFailure era) where
forMachine :: DetailLevel -> ConwayGovCertPredFailure era -> Object
forMachine DetailLevel
_dtal =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat ([Object] -> Object)
-> (ConwayGovCertPredFailure era -> [Object])
-> ConwayGovCertPredFailure era
-> Object
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
Conway.ConwayDRepAlreadyRegistered Credential DRepRole
credential ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConwayDRepAlreadyRegistered"
, Key
"credential" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Credential DRepRole -> Text
forall a. Show a => a -> Text
textShow Credential DRepRole
credential)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DRep is already registered"
]
Conway.ConwayDRepNotRegistered Credential DRepRole
credential ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConwayDRepNotRegistered"
, Key
"credential" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Credential DRepRole -> Text
forall a. Show a => a -> Text
textShow Credential DRepRole
credential)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DRep is not registered"
]
Conway.ConwayDRepIncorrectDeposit Mismatch{Coin
mismatchSupplied :: Coin
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied, Coin
mismatchExpected :: Coin
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected} ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConwayDRepIncorrectDeposit"
, Key
"givenCoin" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchSupplied
, Key
"expectedCoin" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchExpected
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DRep delegation has incorrect deposit"
]
Conway.ConwayCommitteeHasPreviouslyResigned Credential ColdCommitteeRole
coldCred ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConwayCommitteeHasPreviouslyResigned"
, Key
"credential" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Credential ColdCommitteeRole -> Text
forall a. Show a => a -> Text
textShow Credential ColdCommitteeRole
coldCred)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Committee has resigned"
]
Conway.ConwayCommitteeIsUnknown Credential ColdCommitteeRole
coldCred ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConwayCommitteeIsUnknown"
, Key
"credential" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Credential ColdCommitteeRole -> Text
forall a. Show a => a -> Text
textShow Credential ColdCommitteeRole
coldCred)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Committee is Unknown"
]
Conway.ConwayDRepIncorrectRefund Mismatch{Coin
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Coin
mismatchSupplied, Coin
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Coin
mismatchExpected} ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConwayDRepIncorrectRefund"
, Key
"givenRefund" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchSupplied
, Key
"expectedRefund" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchExpected
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Refunds mismatch"
]
instance LogFormatting (Conway.ConwayDelegPredFailure era) where
forMachine :: DetailLevel -> ConwayDelegPredFailure era -> Object
forMachine DetailLevel
_dtal =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat ([Object] -> Object)
-> (ConwayDelegPredFailure era -> [Object])
-> ConwayDelegPredFailure era
-> Object
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
Conway.DelegateeStakePoolNotRegisteredDELEG KeyHash StakePool
poolID ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DelegateeStakePoolNotRegisteredDELEG"
, Key
"poolID" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (KeyHash StakePool -> Text
forall a. Show a => a -> Text
textShow KeyHash StakePool
poolID)
]
Conway.IncorrectDepositDELEG Coin
coin ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"IncorrectDepositDELEG"
, Key
"amount" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
coin
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Incorrect deposit amount"
]
Conway.DelegAccountAlreadyRegistered (AccountAlreadyRegistered Credential Staking
credential) ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DelegAccountAlreadyRegistered"
, Key
"credential" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Credential Staking -> Text
forall a. Show a => a -> Text
textShow Credential Staking
credential)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Stake key already registered"
]
Conway.StakeKeyNotRegisteredDELEG Credential Staking
credential ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"StakeKeyNotRegisteredDELEG"
, Key
"amount" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Credential Staking -> Text
forall a. Show a => a -> Text
textShow Credential Staking
credential)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Stake key not registered"
]
Conway.StakeKeyHasNonZeroAccountBalanceDELEG Coin
coin ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"StakeKeyHasNonZeroAccountBalanceDELEG"
, Key
"amount" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
coin
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Stake key has non-zero account balance"
]
Conway.DelegateeDRepNotRegisteredDELEG Credential DRepRole
credential ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DelegateeDRepNotRegisteredDELEG"
, Key
"credential" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Credential DRepRole -> Text
forall a. Show a => a -> Text
textShow Credential DRepRole
credential)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Delegated rep is not registered for provided stake key"
]
Conway.DepositIncorrectDELEG Mismatch{Coin
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Coin
mismatchSupplied, Coin
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Coin
mismatchExpected} ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DepositIncorrectDELEG"
, Key
"givenRefund" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchSupplied
, Key
"expectedRefund" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchExpected
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Deposit mismatch"
]
Conway.RefundIncorrectDELEG Mismatch{Coin
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Coin
mismatchSupplied, Coin
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Coin
mismatchExpected} ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"RefundIncorrectDELEG"
, Key
"givenRefund" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchSupplied
, Key
"expectedRefund" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchExpected
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Refund mismatch"
]
instance
ShelleyCompatible protocol era =>
LogFormatting (Header (ShelleyBlock protocol era))
where
forMachine :: DetailLevel -> Header (ShelleyBlock protocol era) -> Object
forMachine DetailLevel
_dtal Header (ShelleyBlock protocol era)
b =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ShelleyBlock"
, Key
"hash" Key -> String -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ShelleyHash -> String
forall a. Condense a => a -> String
condense (Header (ShelleyBlock protocol era)
-> HeaderHash (Header (ShelleyBlock protocol era))
forall b. HasHeader b => b -> HeaderHash b
blockHash Header (ShelleyBlock protocol era)
b)
, Key
"slotNo" Key -> String -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SlotNo -> String
forall a. Condense a => a -> String
condense (Header (ShelleyBlock protocol era) -> SlotNo
forall b. HasHeader b => b -> SlotNo
blockSlot Header (ShelleyBlock protocol era)
b)
, Key
"blockNo" Key -> String -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= BlockNo -> String
forall a. Condense a => a -> String
condense (Header (ShelleyBlock protocol era) -> BlockNo
forall b. HasHeader b => b -> BlockNo
blockNo Header (ShelleyBlock protocol era)
b)
]
instance
( Consensus.ShelleyBasedEra era
, ToJSON (ApplyTxError era)
) =>
LogFormatting (ApplyTxError era)
where
forMachine :: DetailLevel -> ApplyTxError era -> Object
forMachine DetailLevel
_dtal ApplyTxError era
err =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ApplyTxError"
, Key
"reason" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ApplyTxError era -> Value
forall a. ToJSON a => a -> Value
toJSON ApplyTxError era
err
]
instance
Ledger.Crypto era =>
LogFormatting (TPraosCannotForge era)
where
forMachine :: DetailLevel -> TPraosCannotForge era -> Object
forMachine DetailLevel
_dtal (TPraosCannotForgeKeyNotUsableYet KESPeriod
wallClockPeriod KESPeriod
keyStartPeriod) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"TPraosCannotForgeKeyNotUsableYet"
, Key
"keyStart" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= KESPeriod -> Value
kesPeriodValue KESPeriod
keyStartPeriod
, Key
"wallClock" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= KESPeriod -> Value
kesPeriodValue KESPeriod
wallClockPeriod
]
forMachine DetailLevel
_dtal (TPraosCannotForgeWrongVRF Hash HASH (VerKeyVRF (VRF era))
genDlgVRFHash Hash HASH (VerKeyVRF (VRF era))
coreNodeVRFHash) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"TPraosCannotLeadWrongVRF"
, Key
"expected" Key -> Hash HASH (VerKeyVRF (VRF era)) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Hash HASH (VerKeyVRF (VRF era))
genDlgVRFHash
, Key
"actual" Key -> Hash HASH (VerKeyVRF (VRF era)) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Hash HASH (VerKeyVRF (VRF era))
coreNodeVRFHash
]
instance
( Consensus.ShelleyBasedEra era
, LogFormatting (PredicateFailure (Ledger.EraRule "BBODY" era))
, NFData (PredicateFailure (Ledger.EraRule "BBODY" era))
) =>
LogFormatting (BlockTransitionError era)
where
forMachine :: DetailLevel -> BlockTransitionError era -> Object
forMachine DetailLevel
dtal (BlockTransitionError NonEmpty (PredicateFailure (EraRule "BBODY" era))
fs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"BlockTransitionError"
, Key
"failures" Key -> NonEmpty Object -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (PredicateFailure (EraRule "BBODY" era) -> Object)
-> NonEmpty (PredicateFailure (EraRule "BBODY" era))
-> NonEmpty Object
forall a b. (a -> b) -> NonEmpty a -> NonEmpty b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (DetailLevel -> PredicateFailure (EraRule "BBODY" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal) NonEmpty (PredicateFailure (EraRule "BBODY" era))
fs
]
instance
Consensus.ShelleyBasedEra era =>
LogFormatting (ShelleyLedgerUpdate era)
where
forMachine :: DetailLevel -> ShelleyLedgerUpdate era -> Object
forMachine DetailLevel
_dtal (ShelleyUpdatedPParams StrictMaybe (PParams era)
updates EpochNo
epochNo) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ShelleyUpdatedProtocolUpdates"
, Key
"updates" Key -> String -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= StrictMaybe (PParams era) -> String
forall a. Show a => a -> String
show StrictMaybe (PParams era)
updates
, Key
"epochNo" Key -> String -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= EpochNo -> String
forall a. Show a => a -> String
show EpochNo
epochNo
]
instance
Ledger.Crypto crypto =>
LogFormatting (ChainTransitionError crypto)
where
forMachine :: DetailLevel -> ChainTransitionError crypto -> Object
forMachine DetailLevel
dtal (ChainTransitionError NonEmpty (PredicateFailure (PRTCL crypto))
fs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ChainTransitionError"
, Key
"failures" Key -> NonEmpty Object -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (PrtclPredicateFailure crypto -> Object)
-> NonEmpty (PrtclPredicateFailure crypto) -> NonEmpty Object
forall a b. (a -> b) -> NonEmpty a -> NonEmpty b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (DetailLevel -> PrtclPredicateFailure crypto -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal) NonEmpty (PredicateFailure (PRTCL crypto))
NonEmpty (PrtclPredicateFailure crypto)
fs
]
instance LogFormatting ChainPredicateFailure where
forMachine :: DetailLevel -> ChainPredicateFailure -> Object
forMachine DetailLevel
_dtal (HeaderSizeTooLargeCHAIN Int
hdrSz Word16
maxHdrSz) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"HeaderSizeTooLarge"
, Key
"headerSize" Key -> Int -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
hdrSz
, Key
"maxHeaderSize" Key -> Word16 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word16
maxHdrSz
]
forMachine DetailLevel
_dtal (BlockSizeTooLargeCHAIN Word32
blkSz Word32
maxBlkSz) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"BlockSizeTooLarge"
, Key
"blockSize" Key -> Word32 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word32
blkSz
, Key
"maxBlockSize" Key -> Word32 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word32
maxBlkSz
]
forMachine DetailLevel
_dtal (ObsoleteNodeCHAIN Version
currentPtcl Version
supportedPtcl) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ObsoleteNode"
, Key
"explanation" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
explanation
, Key
"currentProtocol" Key -> Version -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Version
currentPtcl
, Key
"supportedProtocol" Key -> Version -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Version
supportedPtcl
]
where
explanation :: Text
explanation =
[Text] -> Text
forall a. Monoid a => [a] -> a
mconcat
[ Text
"A scheduled major protocol version change (hard fork) "
, Text
"has taken place on the chain, but this node does not "
, Text
"understand the new major protocol version. This node "
, Text
"must be upgraded before it can continue with the new "
, Text
"protocol version."
]
instance LogFormatting PrtlSeqFailure where
forMachine :: DetailLevel -> PrtlSeqFailure -> Object
forMachine DetailLevel
_dtal (WrongSlotIntervalPrtclSeq (SlotNo Word64
lastSlot) (SlotNo Word64
currSlot)) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongSlotInterval"
, Key
"lastSlot" Key -> Word64 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word64
lastSlot
, Key
"currentSlot" Key -> Word64 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word64
currSlot
]
forMachine DetailLevel
_dtal (WrongBlockNoPrtclSeq WithOrigin LastAppliedBlock
lab BlockNo
currentBlockNo) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongBlockNo"
, Key
"lastAppliedBlockNo" Key -> Text -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= WithOrigin LastAppliedBlock -> Text
showLastAppBlockNo WithOrigin LastAppliedBlock
lab
, Key
"currentBlockNo" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (Text -> Value
String (Text -> Value) -> (Word64 -> Text) -> Word64 -> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> Text
forall a. Show a => a -> Text
textShow (Word64 -> Value) -> Word64 -> Value
forall a b. (a -> b) -> a -> b
$ BlockNo -> Word64
unBlockNo BlockNo
currentBlockNo)
]
forMachine DetailLevel
_dtal (WrongBlockSequencePrtclSeq PrevHash
lastAppliedHash PrevHash
currentHash) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongBlockSequence"
, Key
"lastAppliedBlockHash" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (PrevHash -> Text
forall a. Show a => a -> Text
textShow PrevHash
lastAppliedHash)
, Key
"currentBlockHash" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (PrevHash -> Text
forall a. Show a => a -> Text
textShow PrevHash
currentHash)
]
instance
( Consensus.ShelleyBasedEra era
, LogFormatting (PredicateFailure (Ledger.EraRule "LEDGERS" era))
) =>
LogFormatting (ShelleyBbodyPredFailure era)
where
forMachine :: DetailLevel -> ShelleyBbodyPredFailure era -> Object
forMachine
DetailLevel
_dtal
( WrongBlockBodySizeBBODY
Mismatch
{ mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied = Int
actualBodySz
, mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected = Int
claimedBodySz
}
) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongBlockBodySizeBBODY"
, Key
"actualBlockBodySize" Key -> Int -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
actualBodySz
, Key
"claimedBlockBodySize" Key -> Int -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
claimedBodySz
]
forMachine
DetailLevel
_dtal
( InvalidBodyHashBBODY
Mismatch
{ mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied = Hash HASH EraIndependentBlockBody
actualHash
, mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected = Hash HASH EraIndependentBlockBody
claimedHash
}
) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InvalidBodyHashBBODY"
, Key
"actualBodyHash" Key -> Text -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Hash HASH EraIndependentBlockBody -> Text
forall a. Show a => a -> Text
textShow Hash HASH EraIndependentBlockBody
actualHash
, Key
"claimedBodyHash" Key -> Text -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Hash HASH EraIndependentBlockBody -> Text
forall a. Show a => a -> Text
textShow Hash HASH EraIndependentBlockBody
claimedHash
]
forMachine DetailLevel
dtal (LedgersFailure PredicateFailure (EraRule "LEDGERS" era)
f) = DetailLevel -> PredicateFailure (EraRule "LEDGERS" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "LEDGERS" era)
f
instance
( Consensus.ShelleyBasedEra era
, LogFormatting (PredicateFailure (Ledger.EraRule "LEDGER" era))
) =>
LogFormatting (ShelleyLedgersPredFailure era)
where
forMachine :: DetailLevel -> ShelleyLedgersPredFailure era -> Object
forMachine DetailLevel
dtal (LedgerFailure PredicateFailure (EraRule "LEDGER" era)
f) = DetailLevel -> PredicateFailure (EraRule "LEDGER" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "LEDGER" era)
f
instance LogFormatting Withdrawals where
forMachine :: DetailLevel -> Withdrawals -> Object
forMachine DetailLevel
_dtal (Withdrawals Map AccountAddress Coin
ws) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Withdrawals"
, Key
"withdrawals" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [(Key, Value)] -> Value
Aeson.object (((AccountAddress, Coin) -> (Key, Value))
-> [(AccountAddress, Coin)] -> [(Key, Value)]
forall a b. (a -> b) -> [a] -> [b]
map (AccountAddress, Coin) -> (Key, Value)
renderTuple ([(AccountAddress, Coin)] -> [(Key, Value)])
-> [(AccountAddress, Coin)] -> [(Key, Value)]
forall a b. (a -> b) -> a -> b
$ Map AccountAddress Coin -> [(AccountAddress, Coin)]
forall k a. Map k a -> [(k, a)]
Map.toList Map AccountAddress Coin
ws)
]
where
renderTuple :: (Ledger.AccountAddress, Coin) -> Aeson.Pair
renderTuple :: (AccountAddress, Coin) -> (Key, Value)
renderTuple (AccountAddress
address, Coin
mismatch) =
Text -> Key
Aeson.fromText (AccountAddress -> Text
renderRewardAccount AccountAddress
address) Key -> String -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin -> String
forall a. Show a => a -> String
show Coin
mismatch
instance
( Consensus.ShelleyBasedEra era
, LogFormatting (PredicateFailure (Ledger.EraRule "DELEGS" era))
, LogFormatting (PredicateFailure (Ledger.EraRule "UTXOW" era))
) =>
LogFormatting (ShelleyLedgerPredFailure era)
where
forMachine :: DetailLevel -> ShelleyLedgerPredFailure era -> Object
forMachine DetailLevel
dtal = \case
UtxowFailure PredicateFailure (EraRule "UTXOW" era)
f -> DetailLevel -> PredicateFailure (EraRule "UTXOW" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "UTXOW" era)
f
DelegsFailure PredicateFailure (EraRule "DELEGS" era)
f -> DetailLevel -> PredicateFailure (EraRule "DELEGS" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "DELEGS" era)
f
ShelleyWithdrawalsMissingAccounts Withdrawals
withdrawals -> DetailLevel -> Withdrawals -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal Withdrawals
withdrawals
ShelleyIncompleteWithdrawals NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
payload ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ShelleyIncompleteWithdrawals"
, Key
"withdrawals" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptyMap AccountAddress (Mismatch RelEQ Coin) -> Value
forall (rel :: Relation) payload.
(Typeable rel, Show payload) =>
NonEmptyMap AccountAddress (Mismatch rel payload) -> Value
renderIncompleteWithdrawals NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
payload
]
instance
( AnyEraScript ledgerera
, Consensus.ShelleyBasedEra ledgerera
, LogFormatting (PredicateFailure (Ledger.EraRule "UTXO" ledgerera))
) =>
LogFormatting (AlonzoUtxowPredFailure ledgerera)
where
forMachine :: DetailLevel -> AlonzoUtxowPredFailure ledgerera -> Object
forMachine DetailLevel
dtal (ShelleyInAlonzoUtxowPredFailure ShelleyUtxowPredFailure ledgerera
utxoPredFail) =
DetailLevel -> ShelleyUtxowPredFailure ledgerera -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal ShelleyUtxowPredFailure ledgerera
utxoPredFail
forMachine DetailLevel
_ (MissingRedeemers NonEmpty (PlutusPurpose AsItem ledgerera, ScriptHash)
scripts) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingRedeemers"
, Key
"scripts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (PlutusPurpose AsItem ledgerera, ScriptHash) -> Value
forall era.
(AnyEraScript era, EraPParams era, ToJSON (TxCert era)) =>
NonEmpty (PlutusPurpose AsItem era, ScriptHash) -> Value
renderMissingRedeemers NonEmpty (PlutusPurpose AsItem ledgerera, ScriptHash)
scripts
]
forMachine DetailLevel
_ (MissingRequiredDatums NonEmptySet DataHash
required Set DataHash
received) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingRequiredDatums"
, Key
"required"
Key -> [Text] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (DataHash -> Text) -> [DataHash] -> [Text]
forall a b. (a -> b) -> [a] -> [b]
map
(Hash HASH EraIndependentData -> Text
forall h a. Hash h a -> Text
Crypto.hashToTextAsHex (Hash HASH EraIndependentData -> Text)
-> (DataHash -> Hash HASH EraIndependentData) -> DataHash -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DataHash -> Hash HASH EraIndependentData
forall i. SafeHash i -> Hash HASH i
Hashes.extractHash)
(NonEmptySet DataHash -> [DataHash]
forall a. NonEmptySet a -> [a]
NonEmptySet.toList NonEmptySet DataHash
required)
, Key
"received"
Key -> [Text] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (DataHash -> Text) -> [DataHash] -> [Text]
forall a b. (a -> b) -> [a] -> [b]
map
(Hash HASH EraIndependentData -> Text
forall h a. Hash h a -> Text
Crypto.hashToTextAsHex (Hash HASH EraIndependentData -> Text)
-> (DataHash -> Hash HASH EraIndependentData) -> DataHash -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DataHash -> Hash HASH EraIndependentData
forall i. SafeHash i -> Hash HASH i
Hashes.extractHash)
(Set DataHash -> [DataHash]
forall a. Set a -> [a]
Set.toList Set DataHash
received)
]
forMachine DetailLevel
_ (PPViewHashesDontMatch Mismatch{StrictMaybe ScriptIntegrityHash
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: StrictMaybe ScriptIntegrityHash
mismatchSupplied, StrictMaybe ScriptIntegrityHash
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: StrictMaybe ScriptIntegrityHash
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PPViewHashesDontMatch"
, Key
"fromTxBody" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ScriptIntegrityHash -> Value
renderScriptIntegrityHash (StrictMaybe ScriptIntegrityHash -> Maybe ScriptIntegrityHash
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ScriptIntegrityHash
mismatchSupplied)
, Key
"fromPParams" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ScriptIntegrityHash -> Value
renderScriptIntegrityHash (StrictMaybe ScriptIntegrityHash -> Maybe ScriptIntegrityHash
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ScriptIntegrityHash
mismatchExpected)
]
forMachine DetailLevel
_ (UnspendableUTxONoDatumHash NonEmptySet TxIn
txins) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingRequiredSigners"
, Key
"txins" Key -> [TxIn] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet TxIn -> [TxIn]
forall a. NonEmptySet a -> [a]
NonEmptySet.toList NonEmptySet TxIn
txins
]
forMachine DetailLevel
_ (NotAllowedSupplementalDatums NonEmptySet DataHash
disallowed Set DataHash
acceptable) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"NotAllowedSupplementalDatums"
, Key
"disallowed" Key -> [DataHash] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet DataHash -> [DataHash]
forall a. NonEmptySet a -> [a]
NonEmptySet.toList NonEmptySet DataHash
disallowed
, Key
"acceptable" Key -> [DataHash] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Set DataHash -> [DataHash]
forall a. Set a -> [a]
Set.toList Set DataHash
acceptable
]
forMachine DetailLevel
_ (ExtraRedeemers NonEmpty (PlutusPurpose AsIx ledgerera)
rdmrs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ExtraRedeemers"
, Key
"rdmrs" Key -> [Value] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (PlutusPurpose AsIx ledgerera -> Value)
-> [PlutusPurpose AsIx ledgerera] -> [Value]
forall a b. (a -> b) -> [a] -> [b]
map PlutusPurpose AsIx ledgerera -> Value
forall era. AnyEraScript era => PlutusPurpose AsIx era -> Value
renderScriptIndex (NonEmpty (PlutusPurpose AsIx ledgerera)
-> [PlutusPurpose AsIx ledgerera]
forall a. NonEmpty a -> [a]
NonEmpty.toList NonEmpty (PlutusPurpose AsIx ledgerera)
rdmrs)
]
forMachine DetailLevel
_ (ScriptIntegrityHashMismatch Mismatch{StrictMaybe ScriptIntegrityHash
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: StrictMaybe ScriptIntegrityHash
mismatchSupplied, StrictMaybe ScriptIntegrityHash
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: StrictMaybe ScriptIntegrityHash
mismatchExpected} StrictMaybe ByteString
mBytes) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ScriptIntegrityHashMismatch"
, Key
"supplied" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ScriptIntegrityHash -> Value
renderScriptIntegrityHash (StrictMaybe ScriptIntegrityHash -> Maybe ScriptIntegrityHash
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ScriptIntegrityHash
mismatchSupplied)
, Key
"expected" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ScriptIntegrityHash -> Value
renderScriptIntegrityHash (StrictMaybe ScriptIntegrityHash -> Maybe ScriptIntegrityHash
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ScriptIntegrityHash
mismatchExpected)
, Key
"hashHexPreimage" Key -> String -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ByteString -> String
formatAsHex (StrictMaybe ByteString -> Maybe ByteString
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ByteString
mBytes)
]
formatAsHex :: Maybe Crypto.ByteString -> String
formatAsHex :: Maybe ByteString -> String
formatAsHex Maybe ByteString
Nothing = String
""
formatAsHex (Just ByteString
bs) = ByteString -> String
forall a. Show a => a -> String
show ByteString
bs
instance
( Consensus.ShelleyBasedEra era
, LogFormatting (PredicateFailure (Ledger.EraRule "UTXO" era))
) =>
LogFormatting (ShelleyUtxowPredFailure era)
where
forMachine :: DetailLevel -> ShelleyUtxowPredFailure era -> Object
forMachine DetailLevel
_dtal (InvalidWitnessesUTXOW NonEmpty (VKey Witness)
wits') =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InvalidWitnessesUTXOW"
, Key
"invalidWitnesses" Key -> [Text] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (VKey Witness -> Text) -> [VKey Witness] -> [Text]
forall a b. (a -> b) -> [a] -> [b]
map VKey Witness -> Text
forall a. Show a => a -> Text
textShow (NonEmpty (VKey Witness) -> [VKey Witness]
forall a. NonEmpty a -> [a]
NonEmpty.toList NonEmpty (VKey Witness)
wits')
]
forMachine DetailLevel
_dtal (MissingVKeyWitnessesUTXOW NonEmptySet (KeyHash Witness)
wits') =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingVKeyWitnessesUTXOW"
, Key
"missingWitnesses" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet (KeyHash Witness) -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet (KeyHash Witness)
wits'
]
forMachine DetailLevel
_dtal (MissingScriptWitnessesUTXOW NonEmptySet ScriptHash
missingScripts) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingScriptWitnessesUTXOW"
, Key
"missingScripts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet ScriptHash -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet ScriptHash
missingScripts
]
forMachine DetailLevel
_dtal (ScriptWitnessNotValidatingUTXOW NonEmptySet ScriptHash
failedScripts) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ScriptWitnessNotValidatingUTXOW"
, Key
"failedScripts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet ScriptHash -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet ScriptHash
failedScripts
]
forMachine DetailLevel
dtal (UtxoFailure PredicateFailure (EraRule "UTXO" era)
f) = DetailLevel -> PredicateFailure (EraRule "UTXO" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "UTXO" era)
f
forMachine DetailLevel
_dtal (MIRInsufficientGenesisSigsUTXOW Set (KeyHash Witness)
genesisSigs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MIRInsufficientGenesisSigsUTXOW"
, Key
"genesisSigs" Key -> Set (KeyHash Witness) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Set (KeyHash Witness)
genesisSigs
]
forMachine DetailLevel
_dtal (MissingTxBodyMetadataHash TxAuxDataHash
metadataHash) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingTxBodyMetadataHash"
, Key
"metadataHash" Key -> TxAuxDataHash -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TxAuxDataHash
metadataHash
]
forMachine DetailLevel
_dtal (MissingTxMetadata TxAuxDataHash
txBodyMetadataHash) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingTxMetadata"
, Key
"txBodyMetadataHash" Key -> TxAuxDataHash -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TxAuxDataHash
txBodyMetadataHash
]
forMachine
DetailLevel
_dtal
( ConflictingMetadataHash
Mismatch
{ mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied = TxAuxDataHash
txBodyMetadataHash
, mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected = TxAuxDataHash
fullMetadataHash
}
) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConflictingMetadataHash"
, Key
"txBodyMetadataHash" Key -> TxAuxDataHash -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TxAuxDataHash
txBodyMetadataHash
, Key
"fullMetadataHash" Key -> TxAuxDataHash -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TxAuxDataHash
fullMetadataHash
]
forMachine DetailLevel
_dtal ShelleyUtxowPredFailure era
InvalidMetadata =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InvalidMetadata"
]
forMachine DetailLevel
_dtal (ExtraneousScriptWitnessesUTXOW NonEmptySet ScriptHash
scriptHashes) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ExtraneousScriptWitnessesUTXOW"
, Key
"scriptHashes" Key -> Set Text -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (ScriptHash -> Text) -> Set ScriptHash -> Set Text
forall b a. Ord b => (a -> b) -> Set a -> Set b
Set.map ScriptHash -> Text
renderScriptHash (NonEmptySet ScriptHash -> Set ScriptHash
forall a. NonEmptySet a -> Set a
NonEmptySet.toSet NonEmptySet ScriptHash
scriptHashes)
]
instance
( Consensus.ShelleyBasedEra era
, LogFormatting (Ledger.EraRuleFailure "PPUP" era)
) =>
LogFormatting (ShelleyUtxoPredFailure era)
where
forMachine :: DetailLevel -> ShelleyUtxoPredFailure era -> Object
forMachine DetailLevel
_dtal (BadInputsUTxO NonEmptySet TxIn
badInputs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"BadInputsUTxO"
, Key
"badInputs" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet TxIn -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet TxIn
badInputs
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Set TxIn -> Value
renderBadInputsUTxOErr (NonEmptySet TxIn -> Set TxIn
forall a. NonEmptySet a -> Set a
NonEmptySet.toSet NonEmptySet TxIn
badInputs)
]
forMachine DetailLevel
_dtal (ExpiredUTxO Mismatch{SlotNo
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: SlotNo
mismatchSupplied, SlotNo
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: SlotNo
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ExpiredUTxO"
, Key
"ttl" Key -> SlotNo -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SlotNo
mismatchSupplied
, Key
"slot" Key -> SlotNo -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SlotNo
mismatchExpected
]
forMachine
DetailLevel
_dtal
( MaxTxSizeUTxO
Mismatch
{ mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied = Word32
txsize
, mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected = Word32
maxtxsize
}
) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MaxTxSizeUTxO"
, Key
"size" Key -> Word32 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word32
txsize
, Key
"maxSize" Key -> Word32 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word32
maxtxsize
]
forMachine DetailLevel
_dtal (OutputTooSmallUTxO NonEmpty (TxOut era)
badOutputs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"OutputTooSmallUTxO"
, Key
"outputs" Key -> NonEmpty (TxOut era) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (TxOut era)
badOutputs
, Key
"error"
Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String
( [Text] -> Text
forall a. Monoid a => [a] -> a
mconcat
[ Text
"The output is smaller than the allow minimum "
, Text
"UTxO value defined in the protocol parameters"
]
)
]
forMachine DetailLevel
_dtal (OutputBootAddrAttrsTooBig NonEmpty (TxOut era)
badOutputs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"OutputBootAddrAttrsTooBig"
, Key
"outputs" Key -> NonEmpty (TxOut era) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (TxOut era)
badOutputs
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"The Byron address attributes are too big"
]
forMachine DetailLevel
_dtal ShelleyUtxoPredFailure era
InputSetEmptyUTxO =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat [Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InputSetEmptyUTxO"]
forMachine
DetailLevel
_dtal
( FeeTooSmallUTxO
Mismatch
{ mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied = Coin
minfee
, mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected = Coin
txfee
}
) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"FeeTooSmallUTxO"
, Key
"minimum" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
minfee
, Key
"fee" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
txfee
]
forMachine DetailLevel
_dtal (ValueNotConservedUTxO Mismatch{Value era
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Value era
mismatchSupplied, Value era
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Value era
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ValueNotConservedUTxO"
, Key
"consumed" Key -> Value era -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value era
mismatchSupplied
, Key
"produced" Key -> Value era -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value era
mismatchExpected
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value era -> Value era -> Value
forall val. Show val => val -> val -> Value
renderValueNotConservedErr Value era
mismatchSupplied Value era
mismatchExpected
]
forMachine DetailLevel
dtal (UpdateFailure EraRuleFailure "PPUP" era
f) = DetailLevel -> EraRuleFailure "PPUP" era -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal EraRuleFailure "PPUP" era
f
forMachine DetailLevel
_dtal (WrongNetwork Network
network NonEmptySet Addr
addrs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongNetwork"
, Key
"network" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
network
, Key
"addrs" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet Addr -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet Addr
addrs
]
forMachine DetailLevel
_dtal (WrongNetworkWithdrawal Network
network NonEmptySet AccountAddress
addrs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongNetworkWithdrawal"
, Key
"network" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
network
, Key
"addrs" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet AccountAddress -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet AccountAddress
addrs
]
instance
( Consensus.ShelleyBasedEra era
, LogFormatting (Ledger.EraRuleFailure "PPUP" era)
) =>
LogFormatting (AllegraUtxoPredFailure era)
where
forMachine :: DetailLevel -> AllegraUtxoPredFailure era -> Object
forMachine DetailLevel
_dtal (Allegra.BadInputsUTxO NonEmptySet TxIn
badInputs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"BadInputsUTxO"
, Key
"badInputs" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet TxIn -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet TxIn
badInputs
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Set TxIn -> Value
renderBadInputsUTxOErr (NonEmptySet TxIn -> Set TxIn
forall a. NonEmptySet a -> Set a
NonEmptySet.toSet NonEmptySet TxIn
badInputs)
]
forMachine DetailLevel
_dtal (Allegra.OutsideValidityIntervalUTxO ValidityInterval
validityInterval SlotNo
slot) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ExpiredUTxO"
, Key
"validityInterval" Key -> ValidityInterval -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ValidityInterval
validityInterval
, Key
"slot" Key -> SlotNo -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SlotNo
slot
]
forMachine DetailLevel
_dtal (Allegra.MaxTxSizeUTxO Mismatch{Word32
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Word32
mismatchSupplied, Word32
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Word32
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MaxTxSizeUTxO"
, Key
"size" Key -> Word32 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word32
mismatchSupplied
, Key
"maxSize" Key -> Word32 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word32
mismatchExpected
]
forMachine DetailLevel
_dtal AllegraUtxoPredFailure era
Allegra.InputSetEmptyUTxO =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat [Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InputSetEmptyUTxO"]
forMachine DetailLevel
_dtal (Allegra.FeeTooSmallUTxO Mismatch{Coin
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Coin
mismatchSupplied, Coin
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Coin
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"FeeTooSmallUTxO"
, Key
"minimum" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchExpected
, Key
"fee" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchSupplied
]
forMachine DetailLevel
_dtal (Allegra.ValueNotConservedUTxO Mismatch{Value era
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Value era
mismatchSupplied, Value era
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Value era
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ValueNotConservedUTxO"
, Key
"consumed" Key -> Value era -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value era
mismatchSupplied
, Key
"produced" Key -> Value era -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value era
mismatchExpected
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value era -> Value era -> Value
forall val. Show val => val -> val -> Value
renderValueNotConservedErr Value era
mismatchSupplied Value era
mismatchExpected
]
forMachine DetailLevel
_dtal (Allegra.WrongNetwork Network
network NonEmptySet Addr
addrs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongNetwork"
, Key
"network" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
network
, Key
"addrs" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet Addr -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet Addr
addrs
]
forMachine DetailLevel
_dtal (Allegra.WrongNetworkWithdrawal Network
network NonEmptySet AccountAddress
addrs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongNetworkWithdrawal"
, Key
"network" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
network
, Key
"addrs" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet AccountAddress -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet AccountAddress
addrs
]
forMachine DetailLevel
_dtal (Allegra.OutputTooSmallUTxO NonEmpty (TxOut era)
badOutputs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"OutputTooSmallUTxO"
, Key
"outputs" Key -> NonEmpty (TxOut era) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (TxOut era)
badOutputs
, Key
"error"
Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String
( [Text] -> Text
forall a. Monoid a => [a] -> a
mconcat
[ Text
"The output is smaller than the allow minimum "
, Text
"UTxO value defined in the protocol parameters"
]
)
]
forMachine DetailLevel
dtal (Allegra.UpdateFailure EraRuleFailure "PPUP" era
f) = DetailLevel -> EraRuleFailure "PPUP" era -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal EraRuleFailure "PPUP" era
f
forMachine DetailLevel
_dtal (Allegra.OutputBootAddrAttrsTooBig NonEmpty (TxOut era)
badOutputs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"OutputBootAddrAttrsTooBig"
, Key
"outputs" Key -> NonEmpty (TxOut era) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (TxOut era)
badOutputs
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"The Byron address attributes are too big"
]
forMachine DetailLevel
_dtal (Allegra.OutputTooBigUTxO NonEmpty (TxOut era)
badOutputs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"OutputTooBigUTxO"
, Key
"outputs" Key -> NonEmpty (TxOut era) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (TxOut era)
badOutputs
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Too many asset ids in the tx output"
]
renderBadInputsUTxOErr :: Set TxIn -> Value
renderBadInputsUTxOErr :: Set TxIn -> Value
renderBadInputsUTxOErr Set TxIn
txIns
| Set TxIn -> Bool
forall a. Set a -> Bool
Set.null Set TxIn
txIns = Text -> Value
String Text
"The transaction contains no inputs."
| Bool
otherwise = Text -> Value
String Text
"The transaction contains inputs that do not exist in the UTxO set."
renderValueNotConservedErr :: Show val => val -> val -> Value
renderValueNotConservedErr :: forall val. Show val => val -> val -> Value
renderValueNotConservedErr val
consumed val
produced =
Text -> Value
String (Text -> Value) -> Text -> Value
forall a b. (a -> b) -> a -> b
$
Text
"This transaction consumed " Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> val -> Text
forall a. Show a => a -> Text
textShow val
consumed Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
" but produced " Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> val -> Text
forall a. Show a => a -> Text
textShow val
produced
instance LogFormatting (ShelleyPpupPredFailure era) where
forMachine :: DetailLevel -> ShelleyPpupPredFailure era -> Object
forMachine
DetailLevel
_dtal
( NonGenesisUpdatePPUP
Mismatch
{ mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied = Set (KeyHash GenesisRole)
proposalKeys
, mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected = Set (KeyHash GenesisRole)
genesisKeys
}
) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"NonGenesisUpdatePPUP"
, Key
"keys" Key -> Set (KeyHash GenesisRole) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Set (KeyHash GenesisRole)
proposalKeys Set (KeyHash GenesisRole)
-> Set (KeyHash GenesisRole) -> Set (KeyHash GenesisRole)
forall a. Ord a => Set a -> Set a -> Set a
Set.\\ Set (KeyHash GenesisRole)
genesisKeys
]
forMachine DetailLevel
_dtal (PPUpdateWrongEpoch EpochNo
currEpoch EpochNo
intendedEpoch VotingPeriod
votingPeriod) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PPUpdateWrongEpoch"
, Key
"currentEpoch" Key -> EpochNo -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= EpochNo
currEpoch
, Key
"intendedEpoch" Key -> EpochNo -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= EpochNo
intendedEpoch
, Key
"votingPeriod" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (VotingPeriod -> Text
forall a. Show a => a -> Text
textShow VotingPeriod
votingPeriod)
]
forMachine DetailLevel
_dtal (PVCannotFollowPPUP ProtVer
badPv) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PVCannotFollowPPUP"
, Key
"badProtocolVersion" Key -> ProtVer -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ProtVer
badPv
]
instance
( Consensus.ShelleyBasedEra era
, LogFormatting (PredicateFailure (Ledger.EraRule "DELPL" era))
) =>
LogFormatting (ShelleyDelegsPredFailure era)
where
forMachine :: DetailLevel -> ShelleyDelegsPredFailure era -> Object
forMachine DetailLevel
dtal (DelplFailure PredicateFailure (EraRule "DELPL" era)
f) = DetailLevel -> PredicateFailure (EraRule "DELPL" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "DELPL" era)
f
instance
( LogFormatting (PredicateFailure (Ledger.EraRule "POOL" era))
, LogFormatting (PredicateFailure (Ledger.EraRule "DELEG" era))
) =>
LogFormatting (ShelleyDelplPredFailure era)
where
forMachine :: DetailLevel -> ShelleyDelplPredFailure era -> Object
forMachine DetailLevel
dtal (PoolFailure PredicateFailure (EraRule "POOL" era)
f) = DetailLevel -> PredicateFailure (EraRule "POOL" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "POOL" era)
f
forMachine DetailLevel
dtal (DelegFailure PredicateFailure (EraRule "DELEG" era)
f) = DetailLevel -> PredicateFailure (EraRule "DELEG" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "DELEG" era)
f
instance LogFormatting (ShelleyDelegPredFailure era) where
forMachine :: DetailLevel -> ShelleyDelegPredFailure era -> Object
forMachine DetailLevel
_dtal (DelegAccountAlreadyRegistered (AccountAlreadyRegistered Credential Staking
alreadyRegistered)) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DelegAccountAlreadyRegistered"
, Key
"credential" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Credential Staking -> Text
forall a. Show a => a -> Text
textShow Credential Staking
alreadyRegistered)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Staking credential already registered"
]
forMachine DetailLevel
_dtal (StakeKeyNotRegisteredDELEG Credential Staking
notRegistered) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"StakeKeyNotRegisteredDELEG"
, Key
"credential" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Credential Staking -> Text
forall a. Show a => a -> Text
textShow Credential Staking
notRegistered)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Staking credential not registered"
]
forMachine DetailLevel
_dtal (StakeKeyNonZeroAccountBalanceDELEG Coin
remBalance) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"StakeKeyNonZeroAccountBalanceDELEG"
, Key
"remainingBalance" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
remBalance
]
forMachine DetailLevel
_dtal (StakeDelegationImpossibleDELEG Credential Staking
unregistered) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"StakeDelegationImpossibleDELEG"
, Key
"credential" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Credential Staking -> Text
forall a. Show a => a -> Text
textShow Credential Staking
unregistered)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Cannot delegate this stake credential because it is not registered"
]
forMachine DetailLevel
_dtal ShelleyDelegPredFailure era
WrongCertificateTypeDELEG =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat [Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongCertificateTypeDELEG"]
forMachine DetailLevel
_dtal (GenesisKeyNotInMappingDELEG (KeyHash Hash ADDRHASH (VerKeyDSIGN DSIGN)
genesisKeyHash)) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"GenesisKeyNotInMappingDELEG"
, Key
"unknownKeyHash" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Hash ADDRHASH (VerKeyDSIGN DSIGN) -> Text
forall a. Show a => a -> Text
textShow Hash ADDRHASH (VerKeyDSIGN DSIGN)
genesisKeyHash)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"This genesis key is not in the delegation mapping"
]
forMachine DetailLevel
_dtal (DuplicateGenesisDelegateDELEG (KeyHash Hash ADDRHASH (VerKeyDSIGN DSIGN)
genesisKeyHash)) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DuplicateGenesisDelegateDELEG"
, Key
"duplicateKeyHash" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Hash ADDRHASH (VerKeyDSIGN DSIGN) -> Text
forall a. Show a => a -> Text
textShow Hash ADDRHASH (VerKeyDSIGN DSIGN)
genesisKeyHash)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"This genesis key has already been delegated to"
]
forMachine DetailLevel
_dtal (InsufficientForInstantaneousRewardsDELEG MIRPot
mirpot Mismatch{Coin
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Coin
mismatchSupplied, Coin
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Coin
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InsufficientForInstantaneousRewardsDELEG"
, Key
"pot"
Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String
( case MIRPot
mirpot of
MIRPot
ReservesMIR -> Text
"Reserves"
MIRPot
TreasuryMIR -> Text
"Treasury"
)
, Key
"neededAmount" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchSupplied
, Key
"reserves" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchExpected
]
forMachine DetailLevel
_dtal (MIRCertificateTooLateinEpochDELEG Mismatch{SlotNo
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: SlotNo
mismatchSupplied, SlotNo
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: SlotNo
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MIRCertificateTooLateinEpochDELEG"
, Key
"currentSlotNo" Key -> SlotNo -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SlotNo
mismatchSupplied
, Key
"mustBeSubmittedBeforeSlotNo" Key -> SlotNo -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SlotNo
mismatchExpected
]
forMachine DetailLevel
_dtal (DuplicateGenesisVRFDELEG VRFVerKeyHash GenDelegVRF
vrfKeyHash) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DuplicateGenesisVRFDELEG"
, Key
"keyHash" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Hash HASH KeyRoleVRF -> Text
forall h a. Hash h a -> Text
Crypto.hashToTextAsHex (VRFVerKeyHash GenDelegVRF -> Hash HASH KeyRoleVRF
forall (r :: KeyRoleVRF). VRFVerKeyHash r -> Hash HASH KeyRoleVRF
Hashes.unVRFVerKeyHash VRFVerKeyHash GenDelegVRF
vrfKeyHash))
]
forMachine DetailLevel
_dtal ShelleyDelegPredFailure era
MIRTransferNotCurrentlyAllowed =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MIRTransferNotCurrentlyAllowed"
]
forMachine DetailLevel
_dtal ShelleyDelegPredFailure era
MIRNegativesNotCurrentlyAllowed =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MIRNegativesNotCurrentlyAllowed"
]
forMachine DetailLevel
_dtal (InsufficientForTransferDELEG MIRPot
mirpot Mismatch{Coin
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Coin
mismatchSupplied, Coin
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Coin
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DuplicateGenesisVRFDELEG"
, Key
"pot"
Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String
( case MIRPot
mirpot of
MIRPot
ReservesMIR -> Text
"Reserves"
MIRPot
TreasuryMIR -> Text
"Treasury"
)
, Key
"attempted" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchSupplied
, Key
"available" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchExpected
]
forMachine DetailLevel
_dtal ShelleyDelegPredFailure era
MIRProducesNegativeUpdate =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MIRProducesNegativeUpdate"
]
forMachine DetailLevel
_dtal (MIRNegativeTransfer MIRPot
mirpot Coin
coin) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MIRProducesNegativeUpdate"
, Key
"pot"
Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String
( case MIRPot
mirpot of
MIRPot
ReservesMIR -> Text
"Reserves"
MIRPot
TreasuryMIR -> Text
"Treasury"
)
, Key
"coin" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
coin
]
forMachine DetailLevel
_dtal (DelegateeNotRegisteredDELEG KeyHash StakePool
targetPool) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DelegateeNotRegisteredDELEG"
, Key
"targetPool" Key -> KeyHash StakePool -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= KeyHash StakePool
targetPool
]
instance LogFormatting (ShelleyPoolPredFailure era) where
forMachine :: DetailLevel -> ShelleyPoolPredFailure era -> Object
forMachine DetailLevel
_dtal (StakePoolNotRegisteredOnKeyPOOL (KeyHash Hash ADDRHASH (VerKeyDSIGN DSIGN)
unregStakePool)) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"StakePoolNotRegisteredOnKeyPOOL"
, Key
"unregisteredKeyHash" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Hash ADDRHASH (VerKeyDSIGN DSIGN) -> Text
forall a. Show a => a -> Text
textShow Hash ADDRHASH (VerKeyDSIGN DSIGN)
unregStakePool)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"This stake pool key hash is unregistered"
]
forMachine
DetailLevel
_dtal
( StakePoolRetirementWrongEpochPOOL
Mismatch{mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected = EpochNo
currentEpoch}
Mismatch
{ mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied = EpochNo
intendedRetireEpoch
, mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected = EpochNo
maxRetireEpoch
}
) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"StakePoolRetirementWrongEpochPOOL"
, Key
"currentEpoch" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (EpochNo -> Text
forall a. Show a => a -> Text
textShow EpochNo
currentEpoch)
, Key
"intendedRetirementEpoch" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (EpochNo -> Text
forall a. Show a => a -> Text
textShow EpochNo
intendedRetireEpoch)
, Key
"maxEpochForRetirement" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (EpochNo -> Text
forall a. Show a => a -> Text
textShow EpochNo
maxRetireEpoch)
]
forMachine
DetailLevel
_dtal
( StakePoolCostTooLowPOOL
Mismatch
{ mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied = Coin
certCost
, mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected = Coin
protCost
}
) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"StakePoolCostTooLowPOOL"
, Key
"certificateCost" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Coin -> Text
forall a. Show a => a -> Text
textShow Coin
certCost)
, Key
"protocolParCost" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Coin -> Text
forall a. Show a => a -> Text
textShow Coin
protCost)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"The stake pool cost is too low"
]
forMachine DetailLevel
_dtal (PoolMedataHashTooBig KeyHash StakePool
poolID Int
hashSize) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PoolMedataHashTooBig"
, Key
"hashSize" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (KeyHash StakePool -> Text
forall a. Show a => a -> Text
textShow KeyHash StakePool
poolID)
, Key
"poolID" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Int -> Text
forall a. Show a => a -> Text
textShow Int
hashSize)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"The stake pool metadata hash is too large"
]
forMachine
DetailLevel
_dtal
( WrongNetworkPOOL
Mismatch
{ mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied = Network
networkId
, mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected = Network
listedNetworkId
}
KeyHash StakePool
poolId
) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongNetworkPOOL"
, Key
"networkId" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Network -> Text
forall a. Show a => a -> Text
textShow Network
networkId)
, Key
"listedNetworkId" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Network -> Text
forall a. Show a => a -> Text
textShow Network
listedNetworkId)
, Key
"poolId" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (KeyHash StakePool -> Text
forall a. Show a => a -> Text
textShow KeyHash StakePool
poolId)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Wrong network ID in pool registration certificate"
]
forMachine DetailLevel
_dtal (VRFKeyHashAlreadyRegistered KeyHash StakePool
poolId VRFVerKeyHash StakePoolVRF
vrfKeyHash) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"VRFKeyHashAlreadyRegistered"
, Key
"poolId" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (KeyHash StakePool -> Text
forall a. Show a => a -> Text
textShow KeyHash StakePool
poolId)
, Key
"vrfKeyHash" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (VRFVerKeyHash StakePoolVRF -> Text
forall a. Show a => a -> Text
textShow VRFVerKeyHash StakePoolVRF
vrfKeyHash)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Pool with the same VRF Key Hash is already registered"
]
instance
Ledger.Crypto crypto =>
LogFormatting (PrtclPredicateFailure crypto)
where
forMachine :: DetailLevel -> PrtclPredicateFailure crypto -> Object
forMachine DetailLevel
dtal (OverlayFailure PredicateFailure (OVERLAY crypto)
f) = DetailLevel -> OverlayPredicateFailure crypto -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (OVERLAY crypto)
OverlayPredicateFailure crypto
f
forMachine DetailLevel
dtal (UpdnFailure PredicateFailure (UPDN crypto)
f) = DetailLevel -> UpdnPredicateFailure crypto -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (UPDN crypto)
UpdnPredicateFailure crypto
f
instance
Ledger.Crypto crypto =>
LogFormatting (OverlayPredicateFailure crypto)
where
forMachine :: DetailLevel -> OverlayPredicateFailure crypto -> Object
forMachine DetailLevel
_dtal (UnknownGenesisKeyOVERLAY (KeyHash Hash ADDRHASH (VerKeyDSIGN DSIGN)
genKeyHash)) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"UnknownGenesisKeyOVERLAY"
, Key
"unknownKeyHash" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Hash ADDRHASH (VerKeyDSIGN DSIGN) -> Text
forall a. Show a => a -> Text
textShow Hash ADDRHASH (VerKeyDSIGN DSIGN)
genKeyHash)
]
forMachine DetailLevel
_dtal (VRFKeyBadLeaderValue Nonce
seedNonce (SlotNo Word64
currSlotNo) Nonce
prevHashNonce CertifiedVRF (VRF crypto) Nonce
leaderElecVal) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"VRFKeyBadLeaderValueOVERLAY"
, Key
"seedNonce" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Nonce -> Text
forall a. Show a => a -> Text
textShow Nonce
seedNonce)
, Key
"currentSlot" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Word64 -> Text
forall a. Show a => a -> Text
textShow Word64
currSlotNo)
, Key
"previousHashAsNonce" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Nonce -> Text
forall a. Show a => a -> Text
textShow Nonce
prevHashNonce)
, Key
"leaderElectionValue" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (CertifiedVRF (VRF crypto) Nonce -> Text
forall a. Show a => a -> Text
textShow CertifiedVRF (VRF crypto) Nonce
leaderElecVal)
]
forMachine DetailLevel
_dtal (VRFKeyBadNonce Nonce
seedNonce (SlotNo Word64
currSlotNo) Nonce
prevHashNonce CertifiedVRF (VRF crypto) Nonce
blockNonce) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"VRFKeyBadNonceOVERLAY"
, Key
"seedNonce" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Nonce -> Text
forall a. Show a => a -> Text
textShow Nonce
seedNonce)
, Key
"currentSlot" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Word64 -> Text
forall a. Show a => a -> Text
textShow Word64
currSlotNo)
, Key
"previousHashAsNonce" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Nonce -> Text
forall a. Show a => a -> Text
textShow Nonce
prevHashNonce)
, Key
"blockNonce" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (CertifiedVRF (VRF crypto) Nonce -> Text
forall a. Show a => a -> Text
textShow CertifiedVRF (VRF crypto) Nonce
blockNonce)
]
forMachine DetailLevel
_dtal (VRFKeyWrongVRFKey KeyHash StakePool
issuerHash VRFVerKeyHash StakePoolVRF
regVRFKeyHash VRFVerKeyHash BlockIssuerVRF
unregVRFKeyHash) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"VRFKeyWrongVRFKeyOVERLAY"
, Key
"poolHash" Key -> Text -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= KeyHash StakePool -> Text
forall a. Show a => a -> Text
textShow KeyHash StakePool
issuerHash
, Key
"registeredVRFKeHash" Key -> Text -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= VRFVerKeyHash StakePoolVRF -> Text
forall a. Show a => a -> Text
textShow VRFVerKeyHash StakePoolVRF
regVRFKeyHash
, Key
"unregisteredVRFKeyHash" Key -> Text -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= VRFVerKeyHash BlockIssuerVRF -> Text
forall a. Show a => a -> Text
textShow VRFVerKeyHash BlockIssuerVRF
unregVRFKeyHash
]
forMachine DetailLevel
_dtal (VRFKeyUnknown (KeyHash Hash ADDRHASH (VerKeyDSIGN DSIGN)
kHash)) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"VRFKeyUnknownOVERLAY"
, Key
"keyHash" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Hash ADDRHASH (VerKeyDSIGN DSIGN) -> Text
forall a. Show a => a -> Text
textShow Hash ADDRHASH (VerKeyDSIGN DSIGN)
kHash)
]
forMachine DetailLevel
_dtal (VRFLeaderValueTooBig OutputVRF (VRF crypto)
leadElecVal Ratio Integer
weightOfDelegPool ActiveSlotCoeff
actSlotCoefff) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"VRFLeaderValueTooBigOVERLAY"
, Key
"leaderElectionValue" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (OutputVRF (VRF crypto) -> Text
forall a. Show a => a -> Text
textShow OutputVRF (VRF crypto)
leadElecVal)
, Key
"delegationPoolWeight" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Ratio Integer -> Text
forall a. Show a => a -> Text
textShow Ratio Integer
weightOfDelegPool)
, Key
"activeSlotCoefficient" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (ActiveSlotCoeff -> Text
forall a. Show a => a -> Text
textShow ActiveSlotCoeff
actSlotCoefff)
]
forMachine DetailLevel
_dtal (NotActiveSlotOVERLAY SlotNo
notActiveSlotNo) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"NotActiveSlotOVERLAY"
, Key
"slot" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (SlotNo -> Text
forall a. Show a => a -> Text
textShow SlotNo
notActiveSlotNo)
]
forMachine DetailLevel
_dtal (WrongGenesisColdKeyOVERLAY KeyHash BlockIssuer
actual KeyHash GenesisDelegate
expected) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongGenesisColdKeyOVERLAY"
, Key
"actual" Key -> KeyHash BlockIssuer -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= KeyHash BlockIssuer
actual
, Key
"expected" Key -> KeyHash GenesisDelegate -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= KeyHash GenesisDelegate
expected
]
forMachine DetailLevel
_dtal (WrongGenesisVRFKeyOVERLAY KeyHash BlockIssuer
issuer VRFVerKeyHash GenDelegVRF
actual VRFVerKeyHash BlockIssuerVRF
expected) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongGenesisVRFKeyOVERLAY"
, Key
"issuer" Key -> KeyHash BlockIssuer -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= KeyHash BlockIssuer
issuer
, Key
"actual" Key -> VRFVerKeyHash GenDelegVRF -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= VRFVerKeyHash GenDelegVRF
actual
, Key
"expected" Key -> VRFVerKeyHash BlockIssuerVRF -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= VRFVerKeyHash BlockIssuerVRF
expected
]
forMachine DetailLevel
dtal (OcertFailure PredicateFailure (OCERT crypto)
f) = DetailLevel -> OcertPredicateFailure -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (OCERT crypto)
OcertPredicateFailure
f
instance LogFormatting OcertPredicateFailure where
forMachine :: DetailLevel -> OcertPredicateFailure -> Object
forMachine DetailLevel
_dtal (KESBeforeStartOCERT (KESPeriod Word
oCertstart) (KESPeriod Word
current)) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"KESBeforeStartOCERT"
, Key
"opCertKESStartPeriod" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Word -> Text
forall a. Show a => a -> Text
textShow Word
oCertstart)
, Key
"currentKESPeriod" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Word -> Text
forall a. Show a => a -> Text
textShow Word
current)
, Key
"error"
Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String
( [Text] -> Text
forall a. Monoid a => [a] -> a
mconcat
[ Text
"Your operational certificate's KES start period "
, Text
"is before the KES current period."
]
)
]
forMachine DetailLevel
_dtal (KESAfterEndOCERT (KESPeriod Word
current) (KESPeriod Word
oCertstart) Word64
maxKESEvolutions) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"KESAfterEndOCERT"
, Key
"currentKESPeriod" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Word -> Text
forall a. Show a => a -> Text
textShow Word
current)
, Key
"opCertKESStartPeriod" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Word -> Text
forall a. Show a => a -> Text
textShow Word
oCertstart)
, Key
"maxKESEvolutions" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Word64 -> Text
forall a. Show a => a -> Text
textShow Word64
maxKESEvolutions)
, Key
"error"
Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String
( [Text] -> Text
forall a. Monoid a => [a] -> a
mconcat
[ Text
"The operational certificate's KES start period is "
, Text
"greater than the max number of KES + the KES current period"
]
)
]
forMachine DetailLevel
_dtal (CounterTooSmallOCERT Word64
lastKEScounterUsed Word64
currentKESCounter) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"CounterTooSmallOCert"
, Key
"currentKESCounter" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Word64 -> Text
forall a. Show a => a -> Text
textShow Word64
currentKESCounter)
, Key
"lastKESCounter" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Word64 -> Text
forall a. Show a => a -> Text
textShow Word64
lastKEScounterUsed)
, Key
"error"
Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String
( [Text] -> Text
forall a. Monoid a => [a] -> a
mconcat
[ Text
"The operational certificate's last KES counter is greater "
, Text
"than the current KES counter."
]
)
]
forMachine DetailLevel
_dtal (InvalidSignatureOCERT Word64
oCertCounter KESPeriod
oCertKESStartPeriod) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InvalidSignatureOCERT"
, Key
"opCertKESStartPeriod" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (KESPeriod -> Text
forall a. Show a => a -> Text
textShow KESPeriod
oCertKESStartPeriod)
, Key
"opCertCounter" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Word64 -> Text
forall a. Show a => a -> Text
textShow Word64
oCertCounter)
]
forMachine DetailLevel
_dtal (InvalidKesSignatureOCERT Word
currKESPeriod Word
startKESPeriod Word
expectedKESEvolutions String
err) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InvalidKesSignatureOCERT"
, Key
"opCertKESStartPeriod" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Word -> Text
forall a. Show a => a -> Text
textShow Word
startKESPeriod)
, Key
"opCertKESCurrentPeriod" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Word -> Text
forall a. Show a => a -> Text
textShow Word
currKESPeriod)
, Key
"opCertExpectedKESEvolutions" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Word -> Text
forall a. Show a => a -> Text
textShow Word
expectedKESEvolutions)
, Key
"error" Key -> String -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= String
err
]
forMachine DetailLevel
_dtal (NoCounterForKeyHashOCERT (KeyHash Hash ADDRHASH (VerKeyDSIGN DSIGN)
stakePoolKeyHash)) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"NoCounterForKeyHashOCERT"
, Key
"stakePoolKeyHash" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Hash ADDRHASH (VerKeyDSIGN DSIGN) -> Text
forall a. Show a => a -> Text
textShow Hash ADDRHASH (VerKeyDSIGN DSIGN)
stakePoolKeyHash)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"A counter was not found for this stake pool key hash"
]
instance LogFormatting (UpdnPredicateFailure crypto) where
forMachine :: DetailLevel -> UpdnPredicateFailure crypto -> Object
forMachine DetailLevel
_dtal UpdnPredicateFailure crypto
x = case UpdnPredicateFailure crypto
x of {}
instance
( Consensus.ShelleyBasedEra era
, LogFormatting (PredicateFailure (Ledger.EraRule "UTXOS" era))
) =>
LogFormatting (AlonzoUtxoPredFailure era)
where
forMachine :: DetailLevel -> AlonzoUtxoPredFailure era -> Object
forMachine DetailLevel
_dtal (Alonzo.BadInputsUTxO NonEmptySet TxIn
badInputs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"BadInputsUTxO"
, Key
"badInputs" Key -> Set TxIn -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet TxIn -> Set TxIn
forall a. NonEmptySet a -> Set a
NonEmptySet.toSet NonEmptySet TxIn
badInputs
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Set TxIn -> Value
renderBadInputsUTxOErr (NonEmptySet TxIn -> Set TxIn
forall a. NonEmptySet a -> Set a
NonEmptySet.toSet NonEmptySet TxIn
badInputs)
]
forMachine DetailLevel
_dtal (Alonzo.OutsideValidityIntervalUTxO ValidityInterval
validtyInterval SlotNo
slot) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ExpiredUTxO"
, Key
"validityInterval" Key -> ValidityInterval -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ValidityInterval
validtyInterval
, Key
"slot" Key -> SlotNo -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SlotNo
slot
]
forMachine DetailLevel
_dtal (Alonzo.MaxTxSizeUTxO Mismatch{Word32
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Word32
mismatchSupplied, Word32
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Word32
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MaxTxSizeUTxO"
, Key
"size" Key -> Word32 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word32
mismatchSupplied
, Key
"maxSize" Key -> Word32 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word32
mismatchExpected
]
forMachine DetailLevel
_dtal AlonzoUtxoPredFailure era
Alonzo.InputSetEmptyUTxO =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat [Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InputSetEmptyUTxO"]
forMachine DetailLevel
_dtal (Alonzo.FeeTooSmallUTxO Mismatch{Coin
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Coin
mismatchSupplied, Coin
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Coin
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"FeeTooSmallUTxO"
, Key
"minimum" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchExpected
, Key
"fee" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchSupplied
]
forMachine DetailLevel
_dtal (Alonzo.ValueNotConservedUTxO Mismatch{Value era
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Value era
mismatchSupplied, Value era
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Value era
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ValueNotConservedUTxO"
, Key
"consumed" Key -> Value era -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value era
mismatchSupplied
, Key
"produced" Key -> Value era -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value era
mismatchExpected
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value era -> Value era -> Value
forall val. Show val => val -> val -> Value
renderValueNotConservedErr Value era
mismatchSupplied Value era
mismatchExpected
]
forMachine DetailLevel
_dtal (Alonzo.WrongNetwork Network
network NonEmptySet Addr
addrs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongNetwork"
, Key
"network" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
network
, Key
"addrs" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet Addr -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet Addr
addrs
]
forMachine DetailLevel
_dtal (Alonzo.WrongNetworkWithdrawal Network
network NonEmptySet AccountAddress
addrs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongNetworkWithdrawal"
, Key
"network" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
network
, Key
"addrs" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet AccountAddress -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet AccountAddress
addrs
]
forMachine DetailLevel
_dtal (Alonzo.OutputTooSmallUTxO NonEmpty (TxOut era)
badOutputs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"OutputTooSmallUTxO"
, Key
"outputs" Key -> NonEmpty (TxOut era) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (TxOut era)
badOutputs
, Key
"error"
Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String
( [Text] -> Text
forall a. Monoid a => [a] -> a
mconcat
[ Text
"The output is smaller than the allow minimum "
, Text
"UTxO value defined in the protocol parameters"
]
)
]
forMachine DetailLevel
dtal (Alonzo.UtxosFailure PredicateFailure (EraRule "UTXOS" era)
predFailure) =
DetailLevel -> PredicateFailure (EraRule "UTXOS" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "UTXOS" era)
predFailure
forMachine DetailLevel
_dtal (Alonzo.OutputBootAddrAttrsTooBig NonEmpty (TxOut era)
txouts) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"OutputBootAddrAttrsTooBig"
, Key
"outputs" Key -> NonEmpty (TxOut era) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (TxOut era)
txouts
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"The Byron address attributes are too big"
]
forMachine DetailLevel
_dtal (Alonzo.OutputTooBigUTxO NonEmpty (Int, Int, TxOut era)
badOutputs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"OutputTooBigUTxO"
, Key
"outputs" Key -> NonEmpty (Int, Int, TxOut era) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (Int, Int, TxOut era)
badOutputs
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Too many asset ids in the tx output"
]
forMachine DetailLevel
_dtal (Alonzo.InsufficientCollateral DeltaCoin
computedBalance Coin
suppliedFee) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InsufficientCollateral"
, Key
"balance" Key -> DeltaCoin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= DeltaCoin
computedBalance
, Key
"txfee" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
suppliedFee
]
forMachine DetailLevel
_dtal (Alonzo.ScriptsNotPaidUTxO NonEmptyMap TxIn (TxOut era)
utxos) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ScriptsNotPaidUTxO"
, Key
"utxos" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptyMap TxIn (TxOut era) -> Value
forall k v. (ToJSONKey k, ToJSON v) => NonEmptyMap k v -> Value
jsonNonEmptyMap NonEmptyMap TxIn (TxOut era)
utxos
]
forMachine DetailLevel
_dtal (Alonzo.ExUnitsTooBigUTxO Mismatch{OrdExUnits
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: OrdExUnits
mismatchSupplied, OrdExUnits
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: OrdExUnits
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ExUnitsTooBigUTxO"
, Key
"maxexunits" Key -> OrdExUnits -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= OrdExUnits
mismatchExpected
, Key
"exunits" Key -> OrdExUnits -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= OrdExUnits
mismatchSupplied
]
forMachine DetailLevel
_dtal (Alonzo.CollateralContainsNonADA Value era
inputs) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"CollateralContainsNonADA"
, Key
"inputs" Key -> Value era -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value era
inputs
]
forMachine DetailLevel
_dtal (Alonzo.WrongNetworkInTxBody Mismatch{Network
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Network
mismatchSupplied, Network
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Network
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongNetworkInTxBody"
, Key
"networkid" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
mismatchExpected
, Key
"txbodyNetworkId" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
mismatchSupplied
]
forMachine DetailLevel
_dtal (Alonzo.OutsideForecast SlotNo
slotNum) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"OutsideForecast"
, Key
"slot" Key -> SlotNo -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SlotNo
slotNum
]
forMachine DetailLevel
_dtal (Alonzo.TooManyCollateralInputs Mismatch{Word16
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Word16
mismatchSupplied, Word16
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Word16
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"TooManyCollateralInputs"
, Key
"max" Key -> Word16 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word16
mismatchExpected
, Key
"inputs" Key -> Word16 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word16
mismatchSupplied
]
forMachine DetailLevel
_dtal AlonzoUtxoPredFailure era
Alonzo.NoCollateralInputs =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat [Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"NoCollateralInputs"]
instance
( ToJSON (Alonzo.CollectError ledgerera)
, LogFormatting (Ledger.EraRuleFailure "PPUP" ledgerera)
) =>
LogFormatting (AlonzoUtxosPredFailure ledgerera)
where
forMachine :: DetailLevel -> AlonzoUtxosPredFailure ledgerera -> Object
forMachine DetailLevel
_ (Alonzo.ValidationTagMismatch IsPhase2Valid
isValidating TagMismatchDescription
reason) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ValidationTagMismatch"
, Key
"isvalidating" Key -> IsPhase2Valid -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= IsPhase2Valid
isValidating
, Key
"reason" Key -> TagMismatchDescription -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TagMismatchDescription
reason
]
forMachine DetailLevel
_ (Alonzo.CollectErrors NonEmpty (CollectError ledgerera)
errors) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"CollectErrors"
, Key
"errors" Key -> NonEmpty (CollectError ledgerera) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (CollectError ledgerera)
errors
]
forMachine DetailLevel
dtal (Alonzo.UpdateFailure EraRuleFailure "PPUP" ledgerera
pFailure) =
DetailLevel -> EraRuleFailure "PPUP" ledgerera -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal EraRuleFailure "PPUP" ledgerera
pFailure
instance
( Ledger.Era era
, Show (PredicateFailure (Ledger.EraRule "LEDGERS" era))
) =>
LogFormatting (AlonzoBbodyPredFailure era)
where
forMachine :: DetailLevel -> AlonzoBbodyPredFailure era -> Object
forMachine DetailLevel
_ AlonzoBbodyPredFailure era
err =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"AlonzoBbodyPredFail"
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (AlonzoBbodyPredFailure era -> Text
forall a. Show a => a -> Text
textShow AlonzoBbodyPredFailure era
err)
]
instance
( Ledger.Era era
, LogFormatting (AlonzoUtxoPredFailure era)
, ToJSON (Ledger.TxOut era)
) =>
LogFormatting (BabbageUtxoPredFailure era)
where
forMachine :: DetailLevel -> BabbageUtxoPredFailure era -> Object
forMachine DetailLevel
v BabbageUtxoPredFailure era
err =
case BabbageUtxoPredFailure era
err of
Babbage.AlonzoInBabbageUtxoPredFailure AlonzoUtxoPredFailure era
alonzoFail ->
DetailLevel -> AlonzoUtxoPredFailure era -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
v AlonzoUtxoPredFailure era
alonzoFail
Babbage.IncorrectTotalCollateralField DeltaCoin
provided Coin
declared ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"IncorrectTotalCollateralField"
, Key
"collateralProvided" Key -> DeltaCoin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= DeltaCoin
provided
, Key
"collateralDeclared" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
declared
]
Babbage.BabbageOutputTooSmallUTxO NonEmpty (TxOut era, Coin)
outputs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"OutputTooSmall"
, Key
"outputs" Key -> NonEmpty (TxOut era, Coin) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (TxOut era, Coin)
outputs
]
Babbage.BabbageNonDisjointRefInputs NonEmpty TxIn
nonDisjointInputs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"BabbageNonDisjointRefInputs"
, Key
"outputs" Key -> NonEmpty TxIn -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty TxIn
nonDisjointInputs
]
instance
( AnyEraScript ledgerera
, Ledger.Era ledgerera
, ShelleyBasedEra ledgerera
, LogFormatting (PredicateFailure (Ledger.EraRule "UTXO" ledgerera))
) =>
LogFormatting (BabbageUtxowPredFailure ledgerera)
where
forMachine :: DetailLevel -> BabbageUtxowPredFailure ledgerera -> Object
forMachine DetailLevel
v BabbageUtxowPredFailure ledgerera
err =
case BabbageUtxowPredFailure ledgerera
err of
Babbage.AlonzoInBabbageUtxowPredFailure AlonzoUtxowPredFailure ledgerera
alonzoFail ->
DetailLevel -> AlonzoUtxowPredFailure ledgerera -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
v AlonzoUtxowPredFailure ledgerera
alonzoFail
Babbage.UtxoFailure PredicateFailure (EraRule "UTXO" ledgerera)
utxoFail ->
DetailLevel
-> PredicateFailure (EraRule "UTXO" ledgerera) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
v PredicateFailure (EraRule "UTXO" ledgerera)
utxoFail
Babbage.MalformedScriptWitnesses NonEmptySet ScriptHash
s ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MalformedScriptWitnesses"
, Key
"scripts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet ScriptHash -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet ScriptHash
s
]
Babbage.MalformedReferenceScripts NonEmptySet ScriptHash
s ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MalformedReferenceScripts"
, Key
"scripts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet ScriptHash -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet ScriptHash
s
]
Babbage.ScriptIntegrityHashMismatch Mismatch{StrictMaybe ScriptIntegrityHash
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: StrictMaybe ScriptIntegrityHash
mismatchSupplied, StrictMaybe ScriptIntegrityHash
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: StrictMaybe ScriptIntegrityHash
mismatchExpected} StrictMaybe ByteString
mBytes ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ScriptIntegrityHashMismatch"
, Key
"supplied" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ScriptIntegrityHash -> Value
renderScriptIntegrityHash (StrictMaybe ScriptIntegrityHash -> Maybe ScriptIntegrityHash
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ScriptIntegrityHash
mismatchSupplied)
, Key
"expected" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ScriptIntegrityHash -> Value
renderScriptIntegrityHash (StrictMaybe ScriptIntegrityHash -> Maybe ScriptIntegrityHash
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ScriptIntegrityHash
mismatchExpected)
, Key
"hashHexPreimage" Key -> String -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ByteString -> String
formatAsHex (StrictMaybe ByteString -> Maybe ByteString
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ByteString
mBytes)
]
instance
( Ledger.Era era
, Show (PredicateFailure (Ledger.EraRule "LEDGERS" era))
) =>
LogFormatting (Conway.ConwayBbodyPredFailure era)
where
forMachine :: DetailLevel -> ConwayBbodyPredFailure era -> Object
forMachine DetailLevel
_ ConwayBbodyPredFailure era
err =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConwayBbodyPredFail"
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (ConwayBbodyPredFailure era -> Text
forall a. Show a => a -> Text
textShow ConwayBbodyPredFailure era
err)
]
instance
( Consensus.ShelleyBasedEra era
, LogFormatting (PredicateFailure (Ledger.EraRule "UTXOW" era))
, LogFormatting (PredicateFailure (Ledger.EraRule "GOV" era))
, LogFormatting (PredicateFailure (Ledger.EraRule "CERTS" era))
) =>
LogFormatting (Conway.ConwayLedgerPredFailure era)
where
forMachine :: DetailLevel -> ConwayLedgerPredFailure era -> Object
forMachine DetailLevel
v (Conway.ConwayUtxowFailure PredicateFailure (EraRule "UTXOW" era)
f) = DetailLevel -> PredicateFailure (EraRule "UTXOW" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
v PredicateFailure (EraRule "UTXOW" era)
f
forMachine DetailLevel
_ (Conway.ConwayWithdrawalsMissingAccounts Withdrawals
missingWithdrawals) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConwayWithdrawalsMissingAccounts"
, Key
"withdrawals" Key -> Map AccountAddress Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Withdrawals -> Map AccountAddress Coin
unWithdrawals Withdrawals
missingWithdrawals
]
forMachine DetailLevel
_ (Conway.ConwayIncompleteWithdrawals NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
incompleteWithdrawals) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConwayIncompleteWithdrawals"
, Key
"withdrawals" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptyMap AccountAddress (Mismatch RelEQ Coin) -> Value
forall (rel :: Relation) payload.
(Typeable rel, Show payload) =>
NonEmptyMap AccountAddress (Mismatch rel payload) -> Value
renderIncompleteWithdrawals NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
incompleteWithdrawals
]
forMachine DetailLevel
_ (Conway.ConwayTxRefScriptsSizeTooBig Mismatch{Int
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Int
mismatchSupplied, Int
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Int
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConwayTxRefScriptsSizeTooBig"
, Key
"actual" Key -> Int -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
mismatchSupplied
, Key
"limit" Key -> Int -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
mismatchExpected
]
forMachine DetailLevel
v (Conway.ConwayCertsFailure PredicateFailure (EraRule "CERTS" era)
f) = DetailLevel -> PredicateFailure (EraRule "CERTS" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
v PredicateFailure (EraRule "CERTS" era)
f
forMachine DetailLevel
v (Conway.ConwayGovFailure PredicateFailure (EraRule "GOV" era)
f) = DetailLevel -> PredicateFailure (EraRule "GOV" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
v PredicateFailure (EraRule "GOV" era)
f
forMachine DetailLevel
v (Conway.ConwayWdrlNotDelegatedToDRep NonEmpty (KeyHash Staking)
f) = DetailLevel -> NonEmpty (KeyHash Staking) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
v NonEmpty (KeyHash Staking)
f
forMachine DetailLevel
_ (Conway.ConwayTreasuryValueMismatch Mismatch{Coin
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Coin
mismatchSupplied, Coin
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Coin
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConwayTreasuryValueMismatch"
, Key
"actual" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchExpected
, Key
"submittedInTx" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchSupplied
]
forMachine DetailLevel
_ (Conway.ConwayMempoolFailure Text
message) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConwayMempoolFailure"
, Key
"actual" Key -> Text -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text
message
]
instance
Consensus.ShelleyBasedEra era =>
LogFormatting (Conway.ConwayGovPredFailure era)
where
forMachine :: DetailLevel -> ConwayGovPredFailure era -> Object
forMachine DetailLevel
_ (Conway.GovActionsDoNotExist NonEmpty GovActionId
govActionIds) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"GovActionsDoNotExist"
, Key
"govActionId" Key -> [Text] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (GovActionId -> Text) -> [GovActionId] -> [Text]
forall a b. (a -> b) -> [a] -> [b]
map GovActionId -> Text
govActionIdToText (NonEmpty GovActionId -> [GovActionId]
forall a. NonEmpty a -> [a]
NonEmpty.toList NonEmpty GovActionId
govActionIds)
]
forMachine DetailLevel
_ (Conway.MalformedProposal GovAction era
govAction) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MalformedProposal"
, Key
"govAction" Key -> GovAction era -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= GovAction era
govAction
]
forMachine DetailLevel
_ (Conway.ProposalProcedureNetworkIdMismatch AccountAddress
rewardAcnt Network
network) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ProposalProcedureNetworkIdMismatch"
, Key
"rewardAccount" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= AccountAddress -> Value
forall a. ToJSON a => a -> Value
toJSON AccountAddress
rewardAcnt
, Key
"expectedNetworkId" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network -> Value
forall a. ToJSON a => a -> Value
toJSON Network
network
]
forMachine DetailLevel
_ (Conway.TreasuryWithdrawalsNetworkIdMismatch NonEmptySet AccountAddress
rewardAcnts Network
network) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"TreasuryWithdrawalsNetworkIdMismatch"
, Key
"rewardAccounts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet AccountAddress -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet AccountAddress
rewardAcnts
, Key
"expectedNetworkId" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network -> Value
forall a. ToJSON a => a -> Value
toJSON Network
network
]
forMachine DetailLevel
_ (Conway.ProposalDepositIncorrect Mismatch{Coin
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Coin
mismatchSupplied, Coin
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Coin
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ProposalDepositIncorrect"
, Key
"deposit" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchSupplied
, Key
"expectedDeposit" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchExpected
]
forMachine DetailLevel
_ (Conway.DisallowedVoters NonEmpty (Voter, GovActionId)
govActionIdToVoter) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DisallowedVoters"
, Key
"govActionIdToVoter" Key -> [(Voter, GovActionId)] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (Voter, GovActionId) -> [(Voter, GovActionId)]
forall a. NonEmpty a -> [a]
NonEmpty.toList NonEmpty (Voter, GovActionId)
govActionIdToVoter
]
forMachine DetailLevel
_ (Conway.VotersDoNotExist NonEmpty Voter
creds) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"VotersDoNotExist"
, Key
"credentials" Key -> [Voter] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty Voter -> [Voter]
forall a. NonEmpty a -> [a]
NonEmpty.toList NonEmpty Voter
creds
]
forMachine DetailLevel
_ (Conway.ConflictingCommitteeUpdate NonEmptySet (Credential ColdCommitteeRole)
creds) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConflictingCommitteeUpdate"
, Key
"credentials" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet (Credential ColdCommitteeRole) -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet (Credential ColdCommitteeRole)
creds
]
forMachine DetailLevel
_ (Conway.ExpirationEpochTooSmall NonEmptyMap (Credential ColdCommitteeRole) EpochNo
credsToEpoch) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ExpirationEpochTooSmall"
, Key
"credentialsToEpoch" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptyMap (Credential ColdCommitteeRole) EpochNo -> Value
forall k v. (ToJSONKey k, ToJSON v) => NonEmptyMap k v -> Value
jsonNonEmptyMap NonEmptyMap (Credential ColdCommitteeRole) EpochNo
credsToEpoch
]
forMachine DetailLevel
_ (Conway.InvalidPrevGovActionId ProposalProcedure era
proposalProcedure) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InvalidPrevGovActionId"
, Key
"proposalProcedure" Key -> ProposalProcedure era -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ProposalProcedure era
proposalProcedure
]
forMachine DetailLevel
_ (Conway.VotingOnExpiredGovAction NonEmpty (Voter, GovActionId)
actions) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"VotingOnExpiredGovAction"
, Key
"action" Key -> NonEmpty (Voter, GovActionId) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (Voter, GovActionId)
actions
]
forMachine DetailLevel
_ (Conway.ProposalCantFollow StrictMaybe (GovPurposeId 'HardForkPurpose)
prevGovActionId Mismatch{ProtVer
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: ProtVer
mismatchSupplied, ProtVer
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: ProtVer
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ProposalCantFollow"
, Key
"prevGovActionId" Key -> StrictMaybe (GovPurposeId 'HardForkPurpose) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= StrictMaybe (GovPurposeId 'HardForkPurpose)
prevGovActionId
, Key
"protVer" Key -> ProtVer -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ProtVer
mismatchSupplied
, Key
"prevProtVer" Key -> ProtVer -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ProtVer
mismatchExpected
]
forMachine DetailLevel
_ (Conway.DisallowedProposalDuringBootstrap ProposalProcedure era
proposal) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DisallowedProposalDuringBootstrap"
, Key
"proposal" Key -> ProposalProcedure era -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ProposalProcedure era
proposal
]
forMachine DetailLevel
_ (Conway.DisallowedVotesDuringBootstrap NonEmpty (Voter, GovActionId)
votes) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DisallowedVotesDuringBootstrap"
, Key
"votes" Key -> NonEmpty (Voter, GovActionId) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (Voter, GovActionId)
votes
]
forMachine DetailLevel
_ (Conway.ZeroTreasuryWithdrawals GovAction era
govAction) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ZeroTreasuryWithdrawals"
, Key
"govAction" Key -> GovAction era -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= GovAction era
govAction
]
forMachine DetailLevel
_ (Conway.ProposalReturnAccountDoesNotExist AccountAddress
account) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ProposalReturnAccountDoesNotExist"
, Key
"invalidAccount" Key -> AccountAddress -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= AccountAddress
account
]
forMachine DetailLevel
_ (Conway.TreasuryWithdrawalReturnAccountsDoNotExist NonEmpty AccountAddress
accounts) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"TreasuryWithdrawalReturnAccountsDoNotExist"
, Key
"invalidAccounts" Key -> NonEmpty AccountAddress -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty AccountAddress
accounts
]
forMachine DetailLevel
_ (Conway.UnelectedCommitteeVoters NonEmpty (Credential HotCommitteeRole)
voters) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"UnelectedCommitteeVoters"
, Key
"unelectedCommitteeVoters" Key -> NonEmpty (Credential HotCommitteeRole) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (Credential HotCommitteeRole)
voters
]
forMachine DetailLevel
_ (Conway.InvalidGuardrailsScriptHash StrictMaybe ScriptHash
actualPolicyHash StrictMaybe ScriptHash
expectedPolicyHash) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InvalidPolicyHash"
, Key
"actualPolicyHash" Key -> StrictMaybe ScriptHash -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= StrictMaybe ScriptHash
actualPolicyHash
, Key
"expectedPolicyHash" Key -> StrictMaybe ScriptHash -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= StrictMaybe ScriptHash
expectedPolicyHash
]
instance
( Consensus.ShelleyBasedEra era
, LogFormatting (PredicateFailure (Ledger.EraRule "CERT" era))
) =>
LogFormatting (Conway.ConwayCertsPredFailure era)
where
forMachine :: DetailLevel -> ConwayCertsPredFailure era -> Object
forMachine DetailLevel
dtal (Conway.CertFailure PredicateFailure (EraRule "CERT" era)
certFailure) =
DetailLevel -> PredicateFailure (EraRule "CERT" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "CERT" era)
certFailure
instance
( Ledger.Era era
, Show (PredicateFailure (Ledger.EraRule "LEDGERS" era))
) =>
LogFormatting (Dijkstra.DijkstraBbodyPredFailure era)
where
forMachine :: DetailLevel -> DijkstraBbodyPredFailure era -> Object
forMachine DetailLevel
_ DijkstraBbodyPredFailure era
err =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DijkstraBbodyPredFail"
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (DijkstraBbodyPredFailure era -> Text
forall a. Show a => a -> Text
textShow DijkstraBbodyPredFailure era
err)
]
instance
( Consensus.ShelleyBasedEra era
, LogFormatting (PredicateFailure (Ledger.EraRule "UTXOW" era))
, LogFormatting (PredicateFailure (Ledger.EraRule "ENTITIES" era))
, LogFormatting (PredicateFailure (Ledger.EraRule "GOV" era))
, Show (PredicateFailure (Ledger.EraRule "SUBLEDGERS" era))
) =>
LogFormatting (Dijkstra.DijkstraLedgerPredFailure era)
where
forMachine :: DetailLevel -> DijkstraLedgerPredFailure era -> Object
forMachine DetailLevel
v (Dijkstra.DijkstraUtxowFailure PredicateFailure (EraRule "UTXOW" era)
f) = DetailLevel -> PredicateFailure (EraRule "UTXOW" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
v PredicateFailure (EraRule "UTXOW" era)
f
forMachine DetailLevel
v (Dijkstra.DijkstraEntitiesFailure PredicateFailure (EraRule "ENTITIES" era)
f) = DetailLevel -> PredicateFailure (EraRule "ENTITIES" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
v PredicateFailure (EraRule "ENTITIES" era)
f
forMachine DetailLevel
v (Dijkstra.DijkstraGovFailure PredicateFailure (EraRule "GOV" era)
f) = DetailLevel -> PredicateFailure (EraRule "GOV" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
v PredicateFailure (EraRule "GOV" era)
f
forMachine DetailLevel
_ (Dijkstra.DijkstraTreasuryValueMismatch Mismatch{Coin
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Coin
mismatchSupplied, Coin
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Coin
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DijkstraTreasuryValueMismatch"
, Key
"actual" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchExpected
, Key
"submittedInTx" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchSupplied
]
forMachine DetailLevel
_ (Dijkstra.DijkstraTxRefScriptsSizeTooBig Mismatch{Int
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Int
mismatchSupplied, Int
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Int
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DijkstraTxRefScriptsSizeTooBig"
, Key
"actual" Key -> Int -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
mismatchSupplied
, Key
"limit" Key -> Int -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
mismatchExpected
]
forMachine DetailLevel
_ (Dijkstra.DijkstraSubLedgersFailure PredicateFailure (EraRule "SUBLEDGERS" era)
f) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DijkstraSubLedgersFailure"
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (PredicateFailure (EraRule "SUBLEDGERS" era) -> Text
forall a. Show a => a -> Text
textShow PredicateFailure (EraRule "SUBLEDGERS" era)
f)
]
instance
LogFormatting (PredicateFailure (Ledger.EraRule "CERTS" era)) =>
LogFormatting (Dijkstra.EntitiesPredFailure era)
where
forMachine :: DetailLevel -> EntitiesPredFailure era -> Object
forMachine DetailLevel
dtal = \case
Dijkstra.CertsFailure PredicateFailure (EraRule "CERTS" era)
f -> DetailLevel -> PredicateFailure (EraRule "CERTS" era) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "CERTS" era)
f
Dijkstra.WithdrawalAddressesWithWrongNetwork Network
network NonEmptySet AccountAddress
accounts ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WithdrawalAddressesWithWrongNetwork"
, Key
"network" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
network
, Key
"accounts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet AccountAddress -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet AccountAddress
accounts
]
Dijkstra.WithdrawalAccountsMissing Withdrawals
withdrawals ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WithdrawalAccountsMissing"
, Key
"withdrawals" Key -> Map AccountAddress Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Withdrawals -> Map AccountAddress Coin
unWithdrawals Withdrawals
withdrawals
]
Dijkstra.WithdrawalAccountsMissingFromOriginal Withdrawals
withdrawals ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WithdrawalAccountsMissingFromOriginal"
, Key
"withdrawals" Key -> Map AccountAddress Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Withdrawals -> Map AccountAddress Coin
unWithdrawals Withdrawals
withdrawals
]
Dijkstra.WithdrawalAmountsInexactInLegacyMode NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
mismatches ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WithdrawalAmountsInexactInLegacyMode"
, Key
"withdrawals" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptyMap AccountAddress (Mismatch RelEQ Coin) -> Value
forall (rel :: Relation) payload.
(Typeable rel, Show payload) =>
NonEmptyMap AccountAddress (Mismatch rel payload) -> Value
renderIncompleteWithdrawals NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
mismatches
]
Dijkstra.WithdrawalAmountsExceedingOriginalBalance NonEmptyMap AccountAddress (Mismatch RelLTEQ Coin)
mismatches ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WithdrawalAmountsExceedingOriginalBalance"
, Key
"withdrawals" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptyMap AccountAddress (Mismatch RelLTEQ Coin) -> Value
forall (rel :: Relation) payload.
(Typeable rel, Show payload) =>
NonEmptyMap AccountAddress (Mismatch rel payload) -> Value
renderIncompleteWithdrawals NonEmptyMap AccountAddress (Mismatch RelLTEQ Coin)
mismatches
]
Dijkstra.DirectDepositAddressesWithWrongNetwork Network
network NonEmptySet AccountAddress
accounts ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DirectDepositAddressesWithWrongNetwork"
, Key
"network" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
network
, Key
"accounts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet AccountAddress -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet AccountAddress
accounts
]
Dijkstra.DirectDepositAccountsMissing (DirectDeposits Map AccountAddress Coin
deposits) ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DirectDepositAccountsMissing"
, Key
"directDeposits" Key -> Map AccountAddress Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Map AccountAddress Coin
deposits
]
Dijkstra.WrongNetworkInAccountBalanceIntervals Network
network NonEmptySet AccountAddress
accounts ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongNetworkInAccountBalanceIntervals"
, Key
"network" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
network
, Key
"accounts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet AccountAddress -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet AccountAddress
accounts
]
Dijkstra.MissingAccountsInAccountBalanceIntervals NonEmptyMap AccountAddress (AccountBalanceInterval era)
intervals ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingAccountsInAccountBalanceIntervals"
, Key
"intervals" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptyMap AccountAddress (AccountBalanceInterval era) -> Value
forall k v. (ToJSONKey k, ToJSON v) => NonEmptyMap k v -> Value
jsonNonEmptyMap NonEmptyMap AccountAddress (AccountBalanceInterval era)
intervals
]
Dijkstra.BalancesOutsideAccountBalanceIntervals NonEmptyMap AccountAddress (Coin, AccountBalanceInterval era)
balances ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"BalancesOutsideAccountBalanceIntervals"
, Key
"balances" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptyMap AccountAddress (Coin, AccountBalanceInterval era)
-> Value
forall interval.
ToJSON interval =>
NonEmptyMap AccountAddress (Coin, interval) -> Value
renderBalancesOutsideIntervals NonEmptyMap AccountAddress (Coin, AccountBalanceInterval era)
balances
]
Dijkstra.WrongNetworkInStartingAccountBalanceIntervals Network
network NonEmptySet AccountAddress
accounts ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongNetworkInStartingAccountBalanceIntervals"
, Key
"network" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
network
, Key
"accounts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet AccountAddress -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet AccountAddress
accounts
]
Dijkstra.MissingAccountsInStartingAccountBalanceIntervals NonEmptyMap AccountAddress (AccountBalanceInterval era)
intervals ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingAccountsInStartingAccountBalanceIntervals"
, Key
"intervals" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptyMap AccountAddress (AccountBalanceInterval era) -> Value
forall k v. (ToJSONKey k, ToJSON v) => NonEmptyMap k v -> Value
jsonNonEmptyMap NonEmptyMap AccountAddress (AccountBalanceInterval era)
intervals
]
Dijkstra.BalancesOutsideStartingAccountBalanceIntervals NonEmptyMap AccountAddress (Coin, AccountBalanceInterval era)
balances ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"BalancesOutsideStartingAccountBalanceIntervals"
, Key
"balances" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptyMap AccountAddress (Coin, AccountBalanceInterval era)
-> Value
forall interval.
ToJSON interval =>
NonEmptyMap AccountAddress (Coin, interval) -> Value
renderBalancesOutsideIntervals NonEmptyMap AccountAddress (Coin, AccountBalanceInterval era)
balances
]
where
renderBalancesOutsideIntervals ::
ToJSON interval =>
NonEmptyMap.NonEmptyMap Ledger.AccountAddress (Coin, interval) ->
Value
renderBalancesOutsideIntervals :: forall interval.
ToJSON interval =>
NonEmptyMap AccountAddress (Coin, interval) -> Value
renderBalancesOutsideIntervals =
Map AccountAddress Value -> Value
forall a. ToJSON a => a -> Value
toJSON
(Map AccountAddress Value -> Value)
-> (NonEmptyMap AccountAddress (Coin, interval)
-> Map AccountAddress Value)
-> NonEmptyMap AccountAddress (Coin, interval)
-> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Coin, interval) -> Value)
-> Map AccountAddress (Coin, interval) -> Map AccountAddress Value
forall a b.
(a -> b) -> Map AccountAddress a -> Map AccountAddress b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap
( \(Coin
balance, interval
interval) ->
[(Key, Value)] -> Value
Aeson.object [Key
"balance" Key -> Coin -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
balance, Key
"interval" Key -> interval -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= interval
interval]
)
(Map AccountAddress (Coin, interval) -> Map AccountAddress Value)
-> (NonEmptyMap AccountAddress (Coin, interval)
-> Map AccountAddress (Coin, interval))
-> NonEmptyMap AccountAddress (Coin, interval)
-> Map AccountAddress Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. NonEmptyMap AccountAddress (Coin, interval)
-> Map AccountAddress (Coin, interval)
forall k v. NonEmptyMap k v -> Map k v
NonEmptyMap.toMap
instance
Consensus.ShelleyBasedEra era =>
LogFormatting (Dijkstra.DijkstraGovPredFailure era)
where
forMachine :: DetailLevel -> DijkstraGovPredFailure era -> Object
forMachine DetailLevel
_ (Dijkstra.GovActionsDoNotExist NonEmpty GovActionId
govActionIds) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"GovActionsDoNotExist"
, Key
"govActionId" Key -> [Text] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (GovActionId -> Text) -> [GovActionId] -> [Text]
forall a b. (a -> b) -> [a] -> [b]
map GovActionId -> Text
govActionIdToText (NonEmpty GovActionId -> [GovActionId]
forall a. NonEmpty a -> [a]
NonEmpty.toList NonEmpty GovActionId
govActionIds)
]
forMachine DetailLevel
_ (Dijkstra.MalformedProposal GovAction era
govAction) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MalformedProposal"
, Key
"govAction" Key -> GovAction era -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= GovAction era
govAction
]
forMachine DetailLevel
_ (Dijkstra.ProposalProcedureNetworkIdMismatch AccountAddress
rewardAcnt Network
network) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ProposalProcedureNetworkIdMismatch"
, Key
"rewardAccount" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= AccountAddress -> Value
forall a. ToJSON a => a -> Value
toJSON AccountAddress
rewardAcnt
, Key
"expectedNetworkId" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network -> Value
forall a. ToJSON a => a -> Value
toJSON Network
network
]
forMachine DetailLevel
_ (Dijkstra.TreasuryWithdrawalsNetworkIdMismatch NonEmptySet AccountAddress
rewardAcnts Network
network) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"TreasuryWithdrawalsNetworkIdMismatch"
, Key
"rewardAccounts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet AccountAddress -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet AccountAddress
rewardAcnts
, Key
"expectedNetworkId" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network -> Value
forall a. ToJSON a => a -> Value
toJSON Network
network
]
forMachine DetailLevel
_ (Dijkstra.ProposalDepositIncorrect Mismatch{Coin
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Coin
mismatchSupplied, Coin
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Coin
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ProposalDepositIncorrect"
, Key
"deposit" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchSupplied
, Key
"expectedDeposit" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchExpected
]
forMachine DetailLevel
_ (Dijkstra.DisallowedVoters NonEmpty (Voter, GovActionId)
govActionIdToVoter) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DisallowedVoters"
, Key
"govActionIdToVoter" Key -> [(Voter, GovActionId)] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (Voter, GovActionId) -> [(Voter, GovActionId)]
forall a. NonEmpty a -> [a]
NonEmpty.toList NonEmpty (Voter, GovActionId)
govActionIdToVoter
]
forMachine DetailLevel
_ (Dijkstra.ConflictingCommitteeUpdate NonEmptySet (Credential ColdCommitteeRole)
creds) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConflictingCommitteeUpdate"
, Key
"credentials" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet (Credential ColdCommitteeRole) -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet (Credential ColdCommitteeRole)
creds
]
forMachine DetailLevel
_ (Dijkstra.ExpirationEpochTooSmall NonEmptyMap (Credential ColdCommitteeRole) EpochNo
credsToEpoch) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ExpirationEpochTooSmall"
, Key
"credentialsToEpoch" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptyMap (Credential ColdCommitteeRole) EpochNo -> Value
forall k v. (ToJSONKey k, ToJSON v) => NonEmptyMap k v -> Value
jsonNonEmptyMap NonEmptyMap (Credential ColdCommitteeRole) EpochNo
credsToEpoch
]
forMachine DetailLevel
_ (Dijkstra.InvalidPrevGovActionId ProposalProcedure era
proposalProcedure) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InvalidPrevGovActionId"
, Key
"proposalProcedure" Key -> ProposalProcedure era -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ProposalProcedure era
proposalProcedure
]
forMachine DetailLevel
_ (Dijkstra.VotingOnExpiredGovAction NonEmpty (Voter, GovActionId)
actions) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"VotingOnExpiredGovAction"
, Key
"action" Key -> NonEmpty (Voter, GovActionId) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (Voter, GovActionId)
actions
]
forMachine DetailLevel
_ (Dijkstra.ProposalCantFollow StrictMaybe (GovPurposeId 'HardForkPurpose)
prevGovActionId Mismatch{ProtVer
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: ProtVer
mismatchSupplied, ProtVer
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: ProtVer
mismatchExpected}) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ProposalCantFollow"
, Key
"prevGovActionId" Key -> StrictMaybe (GovPurposeId 'HardForkPurpose) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= StrictMaybe (GovPurposeId 'HardForkPurpose)
prevGovActionId
, Key
"protVer" Key -> ProtVer -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ProtVer
mismatchSupplied
, Key
"prevProtVer" Key -> ProtVer -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ProtVer
mismatchExpected
]
forMachine DetailLevel
_ (Dijkstra.InvalidGuardrailsScriptHash StrictMaybe ScriptHash
actualPolicyHash StrictMaybe ScriptHash
expectedPolicyHash) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InvalidGuardrailsScriptHash"
, Key
"actualGuardrailsScriptHash" Key -> StrictMaybe ScriptHash -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= StrictMaybe ScriptHash
actualPolicyHash
, Key
"expectedGuardrailsScriptHash" Key -> StrictMaybe ScriptHash -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= StrictMaybe ScriptHash
expectedPolicyHash
]
forMachine DetailLevel
_ (Dijkstra.DisallowedProposalDuringBootstrap ProposalProcedure era
proposal) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DisallowedProposalDuringBootstrap"
, Key
"proposal" Key -> ProposalProcedure era -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ProposalProcedure era
proposal
]
forMachine DetailLevel
_ (Dijkstra.DisallowedVotesDuringBootstrap NonEmpty (Voter, GovActionId)
votes) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DisallowedVotesDuringBootstrap"
, Key
"votes" Key -> NonEmpty (Voter, GovActionId) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (Voter, GovActionId)
votes
]
forMachine DetailLevel
_ (Dijkstra.VotersDoNotExist NonEmpty Voter
voters) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"VotersDoNotExist"
, Key
"voters" Key -> [Voter] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty Voter -> [Voter]
forall a. NonEmpty a -> [a]
NonEmpty.toList NonEmpty Voter
voters
]
forMachine DetailLevel
_ (Dijkstra.ZeroTreasuryWithdrawals GovAction era
govAction) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ZeroTreasuryWithdrawals"
, Key
"govAction" Key -> GovAction era -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= GovAction era
govAction
]
forMachine DetailLevel
_ (Dijkstra.ProposalReturnAccountDoesNotExist AccountAddress
account) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ProposalReturnAccountDoesNotExist"
, Key
"invalidAccount" Key -> AccountAddress -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= AccountAddress
account
]
forMachine DetailLevel
_ (Dijkstra.TreasuryWithdrawalReturnAccountsDoNotExist NonEmpty AccountAddress
accounts) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"TreasuryWithdrawalReturnAccountsDoNotExist"
, Key
"invalidAccounts" Key -> [AccountAddress] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty AccountAddress -> [AccountAddress]
forall a. NonEmpty a -> [a]
NonEmpty.toList NonEmpty AccountAddress
accounts
]
forMachine DetailLevel
_ (Dijkstra.UnelectedCommitteeVoters NonEmpty (Credential HotCommitteeRole)
voters) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"UnelectedCommitteeVoters"
, Key
"unelectedCommitteeVoters" Key -> [Credential HotCommitteeRole] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (Credential HotCommitteeRole)
-> [Credential HotCommitteeRole]
forall a. NonEmpty a -> [a]
NonEmpty.toList NonEmpty (Credential HotCommitteeRole)
voters
]
instance LogFormatting (Dijkstra.DijkstraGovCertPredFailure era) where
forMachine :: DetailLevel -> DijkstraGovCertPredFailure era -> Object
forMachine DetailLevel
_dtal =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat ([Object] -> Object)
-> (DijkstraGovCertPredFailure era -> [Object])
-> DijkstraGovCertPredFailure era
-> Object
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
Dijkstra.DijkstraDRepAlreadyRegistered Credential DRepRole
credential ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DijkstraDRepAlreadyRegistered"
, Key
"credential" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Credential DRepRole -> Text
forall a. Show a => a -> Text
textShow Credential DRepRole
credential)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DRep is already registered"
]
Dijkstra.DijkstraDRepNotRegistered Credential DRepRole
credential ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DijkstraDRepNotRegistered"
, Key
"credential" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Credential DRepRole -> Text
forall a. Show a => a -> Text
textShow Credential DRepRole
credential)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DRep is not registered"
]
Dijkstra.DijkstraDRepIncorrectDeposit Mismatch{Coin
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Coin
mismatchSupplied, Coin
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Coin
mismatchExpected} ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DijkstraDRepIncorrectDeposit"
, Key
"givenCoin" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchSupplied
, Key
"expectedCoin" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchExpected
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DRep registration has incorrect deposit"
]
Dijkstra.DijkstraCommitteeHasPreviouslyResigned Credential ColdCommitteeRole
coldCred ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DijkstraCommitteeHasPreviouslyResigned"
, Key
"credential" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Credential ColdCommitteeRole -> Text
forall a. Show a => a -> Text
textShow Credential ColdCommitteeRole
coldCred)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Committee has resigned"
]
Dijkstra.DijkstraCommitteeIsUnknown Credential ColdCommitteeRole
coldCred ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DijkstraCommitteeIsUnknown"
, Key
"credential" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Credential ColdCommitteeRole -> Text
forall a. Show a => a -> Text
textShow Credential ColdCommitteeRole
coldCred)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Committee is Unknown"
]
Dijkstra.DijkstraDRepIncorrectRefund Mismatch{Coin
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Coin
mismatchSupplied, Coin
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Coin
mismatchExpected} ->
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DijkstraDRepIncorrectRefund"
, Key
"givenRefund" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchSupplied
, Key
"expectedRefund" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchExpected
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Refunds mismatch"
]
instance LogFormatting (Dijkstra.DijkstraPoolPredFailure era) where
forMachine :: DetailLevel -> DijkstraPoolPredFailure era -> Object
forMachine DetailLevel
_dtal = \case
Dijkstra.StakePoolNotRegisteredOnKeyPOOL (KeyHash Hash ADDRHASH (VerKeyDSIGN DSIGN)
unregStakePool) ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"StakePoolNotRegisteredOnKeyPOOL"
, Key
"unregisteredKeyHash" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Hash ADDRHASH (VerKeyDSIGN DSIGN) -> Text
forall a. Show a => a -> Text
textShow Hash ADDRHASH (VerKeyDSIGN DSIGN)
unregStakePool)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"This stake pool key hash is unregistered"
]
Dijkstra.StakePoolRetirementWrongEpochPOOL
Mismatch{mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected = EpochNo
currentEpoch}
Mismatch{mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied = EpochNo
intendedRetireEpoch, mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected = EpochNo
maxRetireEpoch} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"StakePoolRetirementWrongEpochPOOL"
, Key
"currentEpoch" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (EpochNo -> Text
forall a. Show a => a -> Text
textShow EpochNo
currentEpoch)
, Key
"intendedRetirementEpoch" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (EpochNo -> Text
forall a. Show a => a -> Text
textShow EpochNo
intendedRetireEpoch)
, Key
"maxEpochForRetirement" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (EpochNo -> Text
forall a. Show a => a -> Text
textShow EpochNo
maxRetireEpoch)
]
Dijkstra.StakePoolCostTooLowPOOL Mismatch{mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied = Coin
certCost, mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected = Coin
protCost} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"StakePoolCostTooLowPOOL"
, Key
"certificateCost" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Coin -> Text
forall a. Show a => a -> Text
textShow Coin
certCost)
, Key
"protocolParCost" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Coin -> Text
forall a. Show a => a -> Text
textShow Coin
protCost)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"The stake pool cost is too low"
]
Dijkstra.WrongNetworkPOOL
Mismatch{mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied = Network
networkId, mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected = Network
listedNetworkId}
KeyHash StakePool
poolId ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongNetworkPOOL"
, Key
"networkId" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Network -> Text
forall a. Show a => a -> Text
textShow Network
networkId)
, Key
"listedNetworkId" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Network -> Text
forall a. Show a => a -> Text
textShow Network
listedNetworkId)
, Key
"poolId" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (KeyHash StakePool -> Text
forall a. Show a => a -> Text
textShow KeyHash StakePool
poolId)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Wrong network ID in pool registration certificate"
]
Dijkstra.PoolMedataHashTooBig KeyHash StakePool
poolId Int
hashSize ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PoolMedataHashTooBig"
, Key
"poolID" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (KeyHash StakePool -> Text
forall a. Show a => a -> Text
textShow KeyHash StakePool
poolId)
, Key
"hashSize" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (Int -> Text
forall a. Show a => a -> Text
textShow Int
hashSize)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"The stake pool metadata hash is too large"
]
Dijkstra.VRFKeyHashAlreadyRegistered KeyHash StakePool
poolId VRFVerKeyHash StakePoolVRF
vrfKeyHash ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"VRFKeyHashAlreadyRegistered"
, Key
"poolId" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (KeyHash StakePool -> Text
forall a. Show a => a -> Text
textShow KeyHash StakePool
poolId)
, Key
"vrfKeyHash" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (VRFVerKeyHash StakePoolVRF -> Text
forall a. Show a => a -> Text
textShow VRFVerKeyHash StakePoolVRF
vrfKeyHash)
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Pool with the same VRF Key Hash is already registered"
]
Dijkstra.BlsKeyInvalidProofOfPossession KeyHash StakePool
poolId BlsKey
blsKey ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"BlsKeyInvalidProofOfPossession"
, Key
"poolId" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (KeyHash StakePool -> Text
forall a. Show a => a -> Text
textShow KeyHash StakePool
poolId)
, Key
"blsKey" Key -> BlsKey -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= BlsKey
blsKey
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"The BLS key's proof of possession is invalid"
]
instance
( AnyEraScript ledgerera
, Consensus.ShelleyBasedEra ledgerera
, LogFormatting (PredicateFailure (Ledger.EraRule "UTXOS" ledgerera))
) =>
LogFormatting (Dijkstra.DijkstraUtxoPredFailure ledgerera)
where
forMachine :: DetailLevel -> DijkstraUtxoPredFailure ledgerera -> Object
forMachine DetailLevel
dtal = \case
Dijkstra.UtxosFailure PredicateFailure (EraRule "UTXOS" ledgerera)
utxosPredFailure -> DetailLevel
-> PredicateFailure (EraRule "UTXOS" ledgerera) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "UTXOS" ledgerera)
utxosPredFailure
Dijkstra.BadInputsUTxO NonEmptySet TxIn
badInputs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"BadInputsUTxO"
, Key
"badInputs" Key -> Set TxIn -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet TxIn -> Set TxIn
forall a. NonEmptySet a -> Set a
NonEmptySet.toSet NonEmptySet TxIn
badInputs
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Set TxIn -> Value
renderBadInputsUTxOErr (NonEmptySet TxIn -> Set TxIn
forall a. NonEmptySet a -> Set a
NonEmptySet.toSet NonEmptySet TxIn
badInputs)
]
Dijkstra.OutsideValidityIntervalUTxO ValidityInterval
validityInterval SlotNo
slot ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ExpiredUTxO"
, Key
"validityInterval" Key -> ValidityInterval -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ValidityInterval
validityInterval
, Key
"slot" Key -> SlotNo -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SlotNo
slot
]
Dijkstra.MaxTxSizeUTxO Mismatch{Word32
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Word32
mismatchSupplied, Word32
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Word32
mismatchExpected} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MaxTxSizeUTxO"
, Key
"size" Key -> Word32 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word32
mismatchSupplied
, Key
"maxSize" Key -> Word32 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word32
mismatchExpected
]
DijkstraUtxoPredFailure ledgerera
Dijkstra.InputSetEmptyUTxO ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat [Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InputSetEmptyUTxO"]
Dijkstra.FeeTooSmallUTxO Mismatch{Coin
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Coin
mismatchSupplied, Coin
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Coin
mismatchExpected} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"FeeTooSmallUTxO"
, Key
"minimum" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchExpected
, Key
"fee" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchSupplied
]
Dijkstra.ValueNotConservedUTxO Mismatch{Value ledgerera
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Value ledgerera
mismatchSupplied, Value ledgerera
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Value ledgerera
mismatchExpected} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ValueNotConservedUTxO"
, Key
"consumed" Key -> Value ledgerera -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value ledgerera
mismatchSupplied
, Key
"produced" Key -> Value ledgerera -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value ledgerera
mismatchExpected
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value ledgerera -> Value ledgerera -> Value
forall val. Show val => val -> val -> Value
renderValueNotConservedErr Value ledgerera
mismatchSupplied Value ledgerera
mismatchExpected
]
Dijkstra.WrongNetwork Network
network NonEmptySet Addr
addrs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongNetwork"
, Key
"network" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
network
, Key
"addrs" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet Addr -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet Addr
addrs
]
Dijkstra.OutputBootAddrAttrsTooBig NonEmpty (TxOut ledgerera)
badOutputs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"OutputBootAddrAttrsTooBig"
, Key
"outputs" Key -> NonEmpty (TxOut ledgerera) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (TxOut ledgerera)
badOutputs
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"The Byron address attributes are too big"
]
Dijkstra.OutputTooBigUTxO NonEmpty (Int, Int, TxOut ledgerera)
badOutputs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"OutputTooBigUTxO"
, Key
"outputs" Key -> NonEmpty (Int, Int, TxOut ledgerera) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (Int, Int, TxOut ledgerera)
badOutputs
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Too many asset ids in the tx output"
]
Dijkstra.InsufficientCollateral DeltaCoin
computedBalance Coin
suppliedFee ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InsufficientCollateral"
, Key
"balance" Key -> DeltaCoin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= DeltaCoin
computedBalance
, Key
"txfee" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
suppliedFee
]
Dijkstra.ScriptsNotPaidUTxO NonEmptyMap TxIn (TxOut ledgerera)
utxos ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ScriptsNotPaidUTxO"
, Key
"utxos" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptyMap TxIn (TxOut ledgerera) -> Value
forall k v. (ToJSONKey k, ToJSON v) => NonEmptyMap k v -> Value
jsonNonEmptyMap NonEmptyMap TxIn (TxOut ledgerera)
utxos
]
Dijkstra.ExUnitsTooBigUTxO Mismatch{OrdExUnits
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: OrdExUnits
mismatchSupplied, OrdExUnits
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: OrdExUnits
mismatchExpected} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ExUnitsTooBigUTxO"
, Key
"maxexunits" Key -> OrdExUnits -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= OrdExUnits
mismatchExpected
, Key
"exunits" Key -> OrdExUnits -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= OrdExUnits
mismatchSupplied
]
Dijkstra.CollateralContainsNonADA Value ledgerera
inputs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"CollateralContainsNonADA"
, Key
"inputs" Key -> Value ledgerera -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value ledgerera
inputs
]
Dijkstra.WrongNetworkInTxBody Mismatch{Network
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Network
mismatchSupplied, Network
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Network
mismatchExpected} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongNetworkInTxBody"
, Key
"networkid" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
mismatchExpected
, Key
"txbodyNetworkId" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
mismatchSupplied
]
Dijkstra.OutsideForecast SlotNo
slotNum ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"OutsideForecast"
, Key
"slot" Key -> SlotNo -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SlotNo
slotNum
]
Dijkstra.TooManyCollateralInputs Mismatch{Word16
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Word16
mismatchSupplied, Word16
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Word16
mismatchExpected} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"TooManyCollateralInputs"
, Key
"max" Key -> Word16 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word16
mismatchExpected
, Key
"inputs" Key -> Word16 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word16
mismatchSupplied
]
DijkstraUtxoPredFailure ledgerera
Dijkstra.NoCollateralInputs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat [Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"NoCollateralInputs"]
Dijkstra.IncorrectTotalCollateralField DeltaCoin
provided Coin
declared ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"UnequalCollateralReturn"
, Key
"collateralProvided" Key -> DeltaCoin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= DeltaCoin
provided
, Key
"collateralDeclared" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
declared
]
Dijkstra.BabbageOutputTooSmallUTxO NonEmpty (TxOut ledgerera, Coin)
outputs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"BabbageOutputTooSmall"
, Key
"outputs" Key -> NonEmpty (TxOut ledgerera, Coin) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (TxOut ledgerera, Coin)
outputs
]
Dijkstra.BabbageNonDisjointRefInputs NonEmpty TxIn
nonDisjointInputs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"BabbageNonDisjointRefInputs"
, Key
"outputs" Key -> NonEmpty TxIn -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty TxIn
nonDisjointInputs
]
Dijkstra.PtrPresentInCollateralReturn TxOut ledgerera
output ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PtrPresentInCollateralReturn"
, Key
"output" Key -> TxOut ledgerera -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TxOut ledgerera
output
]
Dijkstra.ValueNotConservedInLegacyMode Mismatch{Value ledgerera
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Value ledgerera
mismatchSupplied, Value ledgerera
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Value ledgerera
mismatchExpected} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ValueNotConservedInLegacyMode"
, Key
"consumed" Key -> Value ledgerera -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value ledgerera
mismatchSupplied
, Key
"produced" Key -> Value ledgerera -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value ledgerera
mismatchExpected
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value ledgerera -> Value ledgerera -> Value
forall val. Show val => val -> val -> Value
renderValueNotConservedErr Value ledgerera
mismatchSupplied Value ledgerera
mismatchExpected
]
instance
( AnyEraScript ledgerera
, Consensus.ShelleyBasedEra ledgerera
, LogFormatting (PredicateFailure (Ledger.EraRule "UTXO" ledgerera))
) =>
LogFormatting (Dijkstra.DijkstraUtxowPredFailure ledgerera)
where
forMachine :: DetailLevel -> DijkstraUtxowPredFailure ledgerera -> Object
forMachine DetailLevel
dtal = \case
Dijkstra.UtxoFailure PredicateFailure (EraRule "UTXO" ledgerera)
utxoPredFail -> DetailLevel
-> PredicateFailure (EraRule "UTXO" ledgerera) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "UTXO" ledgerera)
utxoPredFail
Dijkstra.InvalidWitnessesUTXOW NonEmpty (VKey Witness)
ws ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InvalidWitnessesUTXOW"
, Key
"invalidWitnesses" Key -> [Text] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (VKey Witness -> Text) -> [VKey Witness] -> [Text]
forall a b. (a -> b) -> [a] -> [b]
map VKey Witness -> Text
forall a. Show a => a -> Text
textShow (NonEmpty (VKey Witness) -> [VKey Witness]
forall a. NonEmpty a -> [a]
NonEmpty.toList NonEmpty (VKey Witness)
ws)
]
Dijkstra.MissingVKeyWitnessesUTXOW NonEmptySet (KeyHash Witness)
ws ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingVKeyWitnessesUTXOW"
, Key
"missingWitnesses" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet (KeyHash Witness) -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet (KeyHash Witness)
ws
]
Dijkstra.MissingScriptWitnessesUTXOW NonEmptySet ScriptHash
scripts ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingScriptWitnessesUTXOW"
, Key
"missingScripts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet ScriptHash -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet ScriptHash
scripts
]
Dijkstra.ScriptWitnessNotValidatingUTXOW NonEmptySet ScriptHash
failedScripts ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ScriptWitnessNotValidatingUTXOW"
, Key
"failedScripts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet ScriptHash -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet ScriptHash
failedScripts
]
Dijkstra.MissingTxBodyMetadataHash TxAuxDataHash
hash ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingTxMetadata"
, Key
"txBodyMetadataHash" Key -> TxAuxDataHash -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TxAuxDataHash
hash
]
Dijkstra.MissingTxMetadata TxAuxDataHash
hash ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingTxMetadata"
, Key
"txBodyMetadataHash" Key -> TxAuxDataHash -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TxAuxDataHash
hash
]
Dijkstra.ConflictingMetadataHash Mismatch{TxAuxDataHash
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: TxAuxDataHash
mismatchSupplied, TxAuxDataHash
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: TxAuxDataHash
mismatchExpected} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConflictingMetadataHash"
, Key
"txBodyMetadataHash" Key -> TxAuxDataHash -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TxAuxDataHash
mismatchSupplied
, Key
"fullMetadataHash" Key -> TxAuxDataHash -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TxAuxDataHash
mismatchExpected
]
DijkstraUtxowPredFailure ledgerera
Dijkstra.InvalidMetadata ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InvalidMetadata"
]
Dijkstra.ExtraneousScriptWitnessesUTXOW NonEmptySet ScriptHash
scripts ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InvalidWitnessesUTXOW"
, Key
"extraneousScripts" Key -> Set Text -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (ScriptHash -> Text) -> Set ScriptHash -> Set Text
forall b a. Ord b => (a -> b) -> Set a -> Set b
Set.map ScriptHash -> Text
renderScriptHash (NonEmptySet ScriptHash -> Set ScriptHash
forall a. NonEmptySet a -> Set a
NonEmptySet.toSet NonEmptySet ScriptHash
scripts)
]
Dijkstra.MissingRedeemers NonEmpty (PlutusPurpose AsItem ledgerera, ScriptHash)
scripts ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingRedeemers"
, Key
"scripts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (PlutusPurpose AsItem ledgerera, ScriptHash) -> Value
forall era.
(AnyEraScript era, EraPParams era, ToJSON (TxCert era)) =>
NonEmpty (PlutusPurpose AsItem era, ScriptHash) -> Value
renderMissingRedeemers NonEmpty (PlutusPurpose AsItem ledgerera, ScriptHash)
scripts
]
Dijkstra.MissingRequiredDatums NonEmptySet DataHash
required Set DataHash
received ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingRequiredDatums"
, Key
"required"
Key -> [Text] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (DataHash -> Text) -> [DataHash] -> [Text]
forall a b. (a -> b) -> [a] -> [b]
map
(Hash HASH EraIndependentData -> Text
forall h a. Hash h a -> Text
Crypto.hashToTextAsHex (Hash HASH EraIndependentData -> Text)
-> (DataHash -> Hash HASH EraIndependentData) -> DataHash -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DataHash -> Hash HASH EraIndependentData
forall i. SafeHash i -> Hash HASH i
Hashes.extractHash)
(NonEmptySet DataHash -> [DataHash]
forall a. NonEmptySet a -> [a]
NonEmptySet.toList NonEmptySet DataHash
required)
, Key
"received"
Key -> [Text] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (DataHash -> Text) -> [DataHash] -> [Text]
forall a b. (a -> b) -> [a] -> [b]
map
(Hash HASH EraIndependentData -> Text
forall h a. Hash h a -> Text
Crypto.hashToTextAsHex (Hash HASH EraIndependentData -> Text)
-> (DataHash -> Hash HASH EraIndependentData) -> DataHash -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DataHash -> Hash HASH EraIndependentData
forall i. SafeHash i -> Hash HASH i
Hashes.extractHash)
(Set DataHash -> [DataHash]
forall a. Set a -> [a]
Set.toList Set DataHash
received)
]
Dijkstra.NotAllowedSupplementalDatums NonEmptySet DataHash
disallowed Set DataHash
acceptable ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"NotAllowedSupplementalDatums"
, Key
"disallowed" Key -> [DataHash] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet DataHash -> [DataHash]
forall a. NonEmptySet a -> [a]
NonEmptySet.toList NonEmptySet DataHash
disallowed
, Key
"acceptable" Key -> [DataHash] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Set DataHash -> [DataHash]
forall a. Set a -> [a]
Set.toList Set DataHash
acceptable
]
Dijkstra.PPViewHashesDontMatch Mismatch{StrictMaybe ScriptIntegrityHash
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: StrictMaybe ScriptIntegrityHash
mismatchSupplied, StrictMaybe ScriptIntegrityHash
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: StrictMaybe ScriptIntegrityHash
mismatchExpected} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PPViewHashesDontMatch"
, Key
"fromTxBody" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ScriptIntegrityHash -> Value
renderScriptIntegrityHash (StrictMaybe ScriptIntegrityHash -> Maybe ScriptIntegrityHash
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ScriptIntegrityHash
mismatchSupplied)
, Key
"fromPParams" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ScriptIntegrityHash -> Value
renderScriptIntegrityHash (StrictMaybe ScriptIntegrityHash -> Maybe ScriptIntegrityHash
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ScriptIntegrityHash
mismatchExpected)
]
Dijkstra.UnspendableUTxONoDatumHash NonEmptySet TxIn
ins ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingRequiredSigners"
, Key
"txins" Key -> [TxIn] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet TxIn -> [TxIn]
forall a. NonEmptySet a -> [a]
NonEmptySet.toList NonEmptySet TxIn
ins
]
Dijkstra.ExtraRedeemers NonEmpty (PlutusPurpose AsIx ledgerera)
rs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ExtraRedeemers"
, Key
"rdmrs" Key -> [Value] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (PlutusPurpose AsIx ledgerera -> Value)
-> [PlutusPurpose AsIx ledgerera] -> [Value]
forall a b. (a -> b) -> [a] -> [b]
map PlutusPurpose AsIx ledgerera -> Value
forall era. AnyEraScript era => PlutusPurpose AsIx era -> Value
renderScriptIndex (NonEmpty (PlutusPurpose AsIx ledgerera)
-> [PlutusPurpose AsIx ledgerera]
forall a. NonEmpty a -> [a]
NonEmpty.toList NonEmpty (PlutusPurpose AsIx ledgerera)
rs)
]
Dijkstra.MalformedScriptWitnesses NonEmptySet ScriptHash
scripts ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MalformedScriptWitnesses"
, Key
"scripts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet ScriptHash -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet ScriptHash
scripts
]
Dijkstra.MalformedReferenceScripts NonEmptySet ScriptHash
scripts ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MalformedReferenceScripts"
, Key
"scripts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet ScriptHash -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet ScriptHash
scripts
]
Dijkstra.ScriptIntegrityHashMismatch Mismatch{StrictMaybe ScriptIntegrityHash
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: StrictMaybe ScriptIntegrityHash
mismatchSupplied, StrictMaybe ScriptIntegrityHash
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: StrictMaybe ScriptIntegrityHash
mismatchExpected} StrictMaybe ByteString
mBytes ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ScriptIntegrityHashMismatch"
, Key
"supplied" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ScriptIntegrityHash -> Value
renderScriptIntegrityHash (StrictMaybe ScriptIntegrityHash -> Maybe ScriptIntegrityHash
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ScriptIntegrityHash
mismatchSupplied)
, Key
"expected" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ScriptIntegrityHash -> Value
renderScriptIntegrityHash (StrictMaybe ScriptIntegrityHash -> Maybe ScriptIntegrityHash
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ScriptIntegrityHash
mismatchExpected)
, Key
"hashHexPreimage" Key -> String -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ByteString -> String
formatAsHex (StrictMaybe ByteString -> Maybe ByteString
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ByteString
mBytes)
]
Dijkstra.MissingRequiredGuards NonEmptySet (Credential Guard)
guards ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingRequiredGuards"
, Key
"guards" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet (Credential Guard) -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet (Credential Guard)
guards
]
Dijkstra.MalformedGuardDatums NonEmptySet (Credential Guard)
guards ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MalformedGuardDatums"
, Key
"guards" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet (Credential Guard) -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet (Credential Guard)
guards
]
instance
Ledger.Crypto crypto =>
LogFormatting (Praos.PraosValidationErr crypto)
where
forMachine :: DetailLevel -> PraosValidationErr crypto -> Object
forMachine DetailLevel
_ PraosValidationErr crypto
err' =
case PraosValidationErr crypto
err' of
Praos.VRFKeyUnknown KeyHash StakePool
unknownKeyHash ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"VRFKeyUnknown"
, Key
"vrfKey" Key -> KeyHash StakePool -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= KeyHash StakePool
unknownKeyHash
]
Praos.VRFKeyWrongVRFKey KeyHash StakePool
stakePoolKeyHash Hash HASH (VerKeyVRF (VRF crypto))
registeredVrfForSaidStakepool Hash HASH (VerKeyVRF (VRF crypto))
wrongKeyHashInBlockHeader ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"VRFKeyWrongVRFKey"
, Key
"stakePoolKeyHash" Key -> KeyHash StakePool -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= KeyHash StakePool
stakePoolKeyHash
, Key
"stakePoolVrfKey" Key -> Hash HASH (VerKeyVRF (VRF crypto)) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Hash HASH (VerKeyVRF (VRF crypto))
registeredVrfForSaidStakepool
, Key
"blockHeaderVrfKey" Key -> Hash HASH (VerKeyVRF (VRF crypto)) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Hash HASH (VerKeyVRF (VRF crypto))
wrongKeyHashInBlockHeader
]
Praos.VRFKeyBadProof SlotNo
slotNo Nonce
nonce CertifiedVRF (VRF crypto) InputVRF
vrfCalculatedVal ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"VRFKeyBadProof"
, Key
"slotNumberUsedInVrfCalculation" Key -> SlotNo -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SlotNo
slotNo
, Key
"nonceUsedInVrfCalculation" Key -> Nonce -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Nonce
nonce
, Key
"calculatedVrfValue" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (CertifiedVRF (VRF crypto) InputVRF -> Text
forall a. Show a => a -> Text
textShow CertifiedVRF (VRF crypto) InputVRF
vrfCalculatedVal)
]
Praos.VRFLeaderValueTooBig Natural
leaderValue Ratio Integer
sigma ActiveSlotCoeff
f ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"VRFLeaderValueTooBig"
, Key
"leaderValue" Key -> Natural -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Natural
leaderValue
, Key
"sigma" Key -> Ratio Integer -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Ratio Integer
sigma
, Key
"f" Key -> Fixed E34 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ActiveSlotCoeff -> Fixed E34
activeSlotLog ActiveSlotCoeff
f
]
Praos.KESBeforeStartOCERT KESPeriod
startKesPeriod KESPeriod
currKesPeriod ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"KESBeforeStartOCERT"
, Key
"opCertStartingKesPeriod" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= KESPeriod -> Value
kesPeriodValue KESPeriod
startKesPeriod
, Key
"currentKesPeriod" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= KESPeriod -> Value
kesPeriodValue KESPeriod
currKesPeriod
]
Praos.KESAfterEndOCERT KESPeriod
currKesPeriod KESPeriod
startKesPeriod Word64
maxKesKeyEvos ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"KESAfterEndOCERT"
, Key
"opCertStartingKesPeriod" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= KESPeriod -> Value
kesPeriodValue KESPeriod
startKesPeriod
, Key
"currentKesPeriod" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= KESPeriod -> Value
kesPeriodValue KESPeriod
currKesPeriod
, Key
"maxKesKeyEvolutions" Key -> Word64 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word64
maxKesKeyEvos
]
Praos.CounterTooSmallOCERT Word64
lastCounter Word64
currentCounter ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"CounterTooSmallOCERT"
, Key
"lastCounter" Key -> Word64 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word64
lastCounter
, Key
"currentCounter" Key -> Word64 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word64
currentCounter
]
Praos.CounterOverIncrementedOCERT Word64
lastCounter Word64
currentCounter ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"CounterOverIncrementedOCERT"
, Key
"lastCounter" Key -> Word64 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word64
lastCounter
, Key
"currentCounter" Key -> Word64 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word64
currentCounter
]
Praos.InvalidSignatureOCERT Word64
counter KESPeriod
oCertStartKesPeriod String
err ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InvalidSignatureOCERT"
, Key
"counter" Key -> Word64 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word64
counter
, Key
"opCertStartingKesPeriod" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= KESPeriod -> Value
kesPeriodValue KESPeriod
oCertStartKesPeriod
, Key
"error" Key -> String -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= String
err
]
Praos.InvalidKesSignatureOCERT Word
currentKesPeriod Word
opCertStartKesPeriod Word
expectedKesEvos Word64
maxKesEvos String
err ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InvalidKesSignatureOCERT"
, Key
"currentKesPeriod" Key -> Word -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word
currentKesPeriod
, Key
"opCertStartingKesPeriod" Key -> Word -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word
opCertStartKesPeriod
, Key
"expectedKesEvolutions" Key -> Word -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word
expectedKesEvos
, Key
"maximumKesEvos" Key -> Word64 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word64
maxKesEvos
, Key
"error" Key -> String -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= String
err
]
Praos.NoCounterForKeyHashOCERT KeyHash BlockIssuer
stakePoolKeyHash ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"NoCounterForKeyHashOCERT"
, Key
"stakePoolKeyHash" Key -> KeyHash BlockIssuer -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= KeyHash BlockIssuer
stakePoolKeyHash
]
instance LogFormatting (Praos.PraosCannotForge crypto) where
forMachine :: DetailLevel -> PraosCannotForge crypto -> Object
forMachine DetailLevel
_ (Praos.PraosCannotForgeKeyNotUsableYet KESPeriod
currentKesPeriod KESPeriod
startingKesPeriod) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PraosCannotForgeKeyNotUsableYet"
, Key
"currentKesPeriod" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= KESPeriod -> Value
kesPeriodValue KESPeriod
currentKesPeriod
, Key
"opCertStartingKesPeriod" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= KESPeriod -> Value
kesPeriodValue KESPeriod
startingKesPeriod
]
instance LogFormatting Praos.EnvelopeError where
forMachine :: DetailLevel -> EnvelopeError -> Object
forMachine DetailLevel
_ EnvelopeError
err' =
case EnvelopeError
err' of
Praos.ObsoleteNode Version
maxPtclVersionFromPparams Version
blkHeaderPtclVersion ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ObsoleteNode"
, Key
"maxMajorProtocolVersion" Key -> Version -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Version
maxPtclVersionFromPparams
, Key
"headerProtocolVersion" Key -> Version -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Version
blkHeaderPtclVersion
]
Praos.HeaderSizeTooLarge Int
headerSize Word16
ledgerViewMaxHeaderSize ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"HeaderSizeTooLarge"
, Key
"maxHeaderSize" Key -> Word16 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word16
ledgerViewMaxHeaderSize
, Key
"headerSize" Key -> Int -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
headerSize
]
Praos.BlockSizeTooLarge Word32
blockSize Word32
ledgerViewMaxBlockSize ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"BlockSizeTooLarge"
, Key
"maxBlockSize" Key -> Word32 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word32
ledgerViewMaxBlockSize
, Key
"blockSize" Key -> Word32 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word32
blockSize
]
instance
ToJSON (Alonzo.CollectError ledgerera) =>
LogFormatting (Conway.ConwayUtxosPredFailure ledgerera)
where
forMachine :: DetailLevel -> ConwayUtxosPredFailure ledgerera -> Object
forMachine DetailLevel
_ (Conway.ValidationTagMismatch IsPhase2Valid
isValidating TagMismatchDescription
reason) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ValidationTagMismatch"
, Key
"isvalidating" Key -> IsPhase2Valid -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= IsPhase2Valid
isValidating
, Key
"reason" Key -> TagMismatchDescription -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TagMismatchDescription
reason
]
forMachine DetailLevel
_ (Conway.CollectErrors NonEmpty (CollectError ledgerera)
errors) =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"CollectErrors"
, Key
"errors" Key -> NonEmpty (CollectError ledgerera) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (CollectError ledgerera)
errors
]
instance LogFormatting (Ledger.VoidEraRule rule era) where
forMachine :: DetailLevel -> VoidEraRule rule era -> Object
forMachine DetailLevel
_ = \case {}
instance
( AnyEraScript ledgerera
, Consensus.ShelleyBasedEra ledgerera
, LogFormatting (PredicateFailure (Ledger.EraRule "UTXOS" ledgerera))
) =>
LogFormatting (Conway.ConwayUtxoPredFailure ledgerera)
where
forMachine :: DetailLevel -> ConwayUtxoPredFailure ledgerera -> Object
forMachine DetailLevel
dtal = \case
Conway.UtxosFailure PredicateFailure (EraRule "UTXOS" ledgerera)
utxosPredFailure -> DetailLevel
-> PredicateFailure (EraRule "UTXOS" ledgerera) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "UTXOS" ledgerera)
utxosPredFailure
Conway.BadInputsUTxO NonEmptySet TxIn
badInputs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"BadInputsUTxO"
, Key
"badInputs" Key -> Set TxIn -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet TxIn -> Set TxIn
forall a. NonEmptySet a -> Set a
NonEmptySet.toSet NonEmptySet TxIn
badInputs
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Set TxIn -> Value
renderBadInputsUTxOErr (NonEmptySet TxIn -> Set TxIn
forall a. NonEmptySet a -> Set a
NonEmptySet.toSet NonEmptySet TxIn
badInputs)
]
Conway.OutsideValidityIntervalUTxO ValidityInterval
validityInterval SlotNo
slot ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ExpiredUTxO"
, Key
"validityInterval" Key -> ValidityInterval -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ValidityInterval
validityInterval
, Key
"slot" Key -> SlotNo -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SlotNo
slot
]
Conway.MaxTxSizeUTxO Mismatch{Word32
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Word32
mismatchSupplied, Word32
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Word32
mismatchExpected} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MaxTxSizeUTxO"
, Key
"size" Key -> Word32 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word32
mismatchSupplied
, Key
"maxSize" Key -> Word32 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word32
mismatchExpected
]
ConwayUtxoPredFailure ledgerera
Conway.InputSetEmptyUTxO ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat [Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InputSetEmptyUTxO"]
Conway.FeeTooSmallUTxO Mismatch{Coin
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Coin
mismatchSupplied, Coin
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Coin
mismatchExpected} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"FeeTooSmallUTxO"
, Key
"minimum" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchExpected
, Key
"fee" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
mismatchSupplied
]
Conway.ValueNotConservedUTxO Mismatch{Value ledgerera
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Value ledgerera
mismatchSupplied, Value ledgerera
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Value ledgerera
mismatchExpected} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ValueNotConservedUTxO"
, Key
"consumed" Key -> Value ledgerera -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value ledgerera
mismatchSupplied
, Key
"produced" Key -> Value ledgerera -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value ledgerera
mismatchExpected
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value ledgerera -> Value ledgerera -> Value
forall val. Show val => val -> val -> Value
renderValueNotConservedErr Value ledgerera
mismatchSupplied Value ledgerera
mismatchExpected
]
Conway.WrongNetwork Network
network NonEmptySet Addr
addrs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongNetwork"
, Key
"network" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
network
, Key
"addrs" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet Addr -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet Addr
addrs
]
Conway.WrongNetworkWithdrawal Network
network NonEmptySet AccountAddress
addrs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongNetworkWithdrawal"
, Key
"network" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
network
, Key
"addrs" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet AccountAddress -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet AccountAddress
addrs
]
Conway.OutputTooSmallUTxO NonEmpty (TxOut ledgerera)
badOutputs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"OutputTooSmallUTxO"
, Key
"outputs" Key -> NonEmpty (TxOut ledgerera) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (TxOut ledgerera)
badOutputs
, Key
"error"
Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String
( [Text] -> Text
forall a. Monoid a => [a] -> a
mconcat
[ Text
"The output is smaller than the allow minimum "
, Text
"UTxO value defined in the protocol parameters"
]
)
]
Conway.OutputBootAddrAttrsTooBig NonEmpty (TxOut ledgerera)
badOutputs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"OutputBootAddrAttrsTooBig"
, Key
"outputs" Key -> NonEmpty (TxOut ledgerera) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (TxOut ledgerera)
badOutputs
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"The Byron address attributes are too big"
]
Conway.OutputTooBigUTxO NonEmpty (Int, Int, TxOut ledgerera)
badOutputs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"OutputTooBigUTxO"
, Key
"outputs" Key -> NonEmpty (Int, Int, TxOut ledgerera) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (Int, Int, TxOut ledgerera)
badOutputs
, Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Too many asset ids in the tx output"
]
Conway.InsufficientCollateral DeltaCoin
computedBalance Coin
suppliedFee ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InsufficientCollateral"
, Key
"balance" Key -> DeltaCoin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= DeltaCoin
computedBalance
, Key
"txfee" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
suppliedFee
]
Conway.ScriptsNotPaidUTxO NonEmptyMap TxIn (TxOut ledgerera)
utxos ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ScriptsNotPaidUTxO"
, Key
"utxos" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptyMap TxIn (TxOut ledgerera) -> Value
forall k v. (ToJSONKey k, ToJSON v) => NonEmptyMap k v -> Value
jsonNonEmptyMap NonEmptyMap TxIn (TxOut ledgerera)
utxos
]
Conway.ExUnitsTooBigUTxO Mismatch{OrdExUnits
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: OrdExUnits
mismatchSupplied, OrdExUnits
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: OrdExUnits
mismatchExpected} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ExUnitsTooBigUTxO"
, Key
"maxexunits" Key -> OrdExUnits -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= OrdExUnits
mismatchExpected
, Key
"exunits" Key -> OrdExUnits -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= OrdExUnits
mismatchSupplied
]
Conway.CollateralContainsNonADA Value ledgerera
inputs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"CollateralContainsNonADA"
, Key
"inputs" Key -> Value ledgerera -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value ledgerera
inputs
]
Conway.WrongNetworkInTxBody Mismatch{Network
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Network
mismatchSupplied, Network
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Network
mismatchExpected} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WrongNetworkInTxBody"
, Key
"networkid" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
mismatchExpected
, Key
"txbodyNetworkId" Key -> Network -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Network
mismatchSupplied
]
Conway.OutsideForecast SlotNo
slotNum ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"OutsideForecast"
, Key
"slot" Key -> SlotNo -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SlotNo
slotNum
]
Conway.TooManyCollateralInputs Mismatch{Word16
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: Word16
mismatchSupplied, Word16
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: Word16
mismatchExpected} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"TooManyCollateralInputs"
, Key
"max" Key -> Word16 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word16
mismatchExpected
, Key
"inputs" Key -> Word16 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word16
mismatchSupplied
]
ConwayUtxoPredFailure ledgerera
Conway.NoCollateralInputs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat [Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"NoCollateralInputs"]
Conway.IncorrectTotalCollateralField DeltaCoin
provided Coin
declared ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"UnequalCollateralReturn"
, Key
"collateralProvided" Key -> DeltaCoin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= DeltaCoin
provided
, Key
"collateralDeclared" Key -> Coin -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Coin
declared
]
Conway.BabbageOutputTooSmallUTxO NonEmpty (TxOut ledgerera, Coin)
outputs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"BabbageOutputTooSmall"
, Key
"outputs" Key -> NonEmpty (TxOut ledgerera, Coin) -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (TxOut ledgerera, Coin)
outputs
]
Conway.BabbageNonDisjointRefInputs NonEmpty TxIn
nonDisjointInputs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"BabbageNonDisjointRefInputs"
, Key
"outputs" Key -> NonEmpty TxIn -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty TxIn
nonDisjointInputs
]
instance
( AnyEraScript ledgerera
, Consensus.ShelleyBasedEra ledgerera
, LogFormatting (PredicateFailure (Ledger.EraRule "UTXO" ledgerera))
) =>
LogFormatting (Conway.ConwayUtxowPredFailure ledgerera)
where
forMachine :: DetailLevel -> ConwayUtxowPredFailure ledgerera -> Object
forMachine DetailLevel
dtal = \case
Conway.UtxoFailure PredicateFailure (EraRule "UTXO" ledgerera)
utxoPredFail -> DetailLevel
-> PredicateFailure (EraRule "UTXO" ledgerera) -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal PredicateFailure (EraRule "UTXO" ledgerera)
utxoPredFail
Conway.InvalidWitnessesUTXOW NonEmpty (VKey Witness)
ws ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InvalidWitnessesUTXOW"
, Key
"invalidWitnesses" Key -> [Text] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (VKey Witness -> Text) -> [VKey Witness] -> [Text]
forall a b. (a -> b) -> [a] -> [b]
map VKey Witness -> Text
forall a. Show a => a -> Text
textShow (NonEmpty (VKey Witness) -> [VKey Witness]
forall a. NonEmpty a -> [a]
NonEmpty.toList NonEmpty (VKey Witness)
ws)
]
Conway.MissingVKeyWitnessesUTXOW NonEmptySet (KeyHash Witness)
ws ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingVKeyWitnessesUTXOW"
, Key
"missingWitnesses" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet (KeyHash Witness) -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet (KeyHash Witness)
ws
]
Conway.MissingScriptWitnessesUTXOW NonEmptySet ScriptHash
scripts ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingScriptWitnessesUTXOW"
, Key
"missingScripts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet ScriptHash -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet ScriptHash
scripts
]
Conway.ScriptWitnessNotValidatingUTXOW NonEmptySet ScriptHash
failedScripts ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ScriptWitnessNotValidatingUTXOW"
, Key
"failedScripts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet ScriptHash -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet ScriptHash
failedScripts
]
Conway.MissingTxBodyMetadataHash TxAuxDataHash
hash ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingTxMetadata"
, Key
"txBodyMetadataHash" Key -> TxAuxDataHash -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TxAuxDataHash
hash
]
Conway.MissingTxMetadata TxAuxDataHash
hash ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingTxMetadata"
, Key
"txBodyMetadataHash" Key -> TxAuxDataHash -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TxAuxDataHash
hash
]
Conway.ConflictingMetadataHash Mismatch{TxAuxDataHash
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: TxAuxDataHash
mismatchSupplied, TxAuxDataHash
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: TxAuxDataHash
mismatchExpected} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConflictingMetadataHash"
, Key
"txBodyMetadataHash" Key -> TxAuxDataHash -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TxAuxDataHash
mismatchSupplied
, Key
"fullMetadataHash" Key -> TxAuxDataHash -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TxAuxDataHash
mismatchExpected
]
ConwayUtxowPredFailure ledgerera
Conway.InvalidMetadata ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InvalidMetadata"
]
Conway.ExtraneousScriptWitnessesUTXOW NonEmptySet ScriptHash
scripts ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"InvalidWitnessesUTXOW"
, Key
"extraneousScripts" Key -> Set Text -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (ScriptHash -> Text) -> Set ScriptHash -> Set Text
forall b a. Ord b => (a -> b) -> Set a -> Set b
Set.map ScriptHash -> Text
renderScriptHash (NonEmptySet ScriptHash -> Set ScriptHash
forall a. NonEmptySet a -> Set a
NonEmptySet.toSet NonEmptySet ScriptHash
scripts)
]
Conway.MissingRedeemers NonEmpty (PlutusPurpose AsItem ledgerera, ScriptHash)
scripts ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingRedeemers"
, Key
"scripts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty (PlutusPurpose AsItem ledgerera, ScriptHash) -> Value
forall era.
(AnyEraScript era, EraPParams era, ToJSON (TxCert era)) =>
NonEmpty (PlutusPurpose AsItem era, ScriptHash) -> Value
renderMissingRedeemers NonEmpty (PlutusPurpose AsItem ledgerera, ScriptHash)
scripts
]
Conway.MissingRequiredDatums NonEmptySet DataHash
required Set DataHash
received ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingRequiredDatums"
, Key
"required"
Key -> [Text] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (DataHash -> Text) -> [DataHash] -> [Text]
forall a b. (a -> b) -> [a] -> [b]
map
(Hash HASH EraIndependentData -> Text
forall h a. Hash h a -> Text
Crypto.hashToTextAsHex (Hash HASH EraIndependentData -> Text)
-> (DataHash -> Hash HASH EraIndependentData) -> DataHash -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DataHash -> Hash HASH EraIndependentData
forall i. SafeHash i -> Hash HASH i
Hashes.extractHash)
(NonEmptySet DataHash -> [DataHash]
forall a. NonEmptySet a -> [a]
NonEmptySet.toList NonEmptySet DataHash
required)
, Key
"received"
Key -> [Text] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (DataHash -> Text) -> [DataHash] -> [Text]
forall a b. (a -> b) -> [a] -> [b]
map
(Hash HASH EraIndependentData -> Text
forall h a. Hash h a -> Text
Crypto.hashToTextAsHex (Hash HASH EraIndependentData -> Text)
-> (DataHash -> Hash HASH EraIndependentData) -> DataHash -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DataHash -> Hash HASH EraIndependentData
forall i. SafeHash i -> Hash HASH i
Hashes.extractHash)
(Set DataHash -> [DataHash]
forall a. Set a -> [a]
Set.toList Set DataHash
received)
]
Conway.NotAllowedSupplementalDatums NonEmptySet DataHash
disallowed Set DataHash
acceptable ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"NotAllowedSupplementalDatums"
, Key
"disallowed" Key -> [DataHash] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet DataHash -> [DataHash]
forall a. NonEmptySet a -> [a]
NonEmptySet.toList NonEmptySet DataHash
disallowed
, Key
"acceptable" Key -> [DataHash] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Set DataHash -> [DataHash]
forall a. Set a -> [a]
Set.toList Set DataHash
acceptable
]
Conway.PPViewHashesDontMatch Mismatch{StrictMaybe ScriptIntegrityHash
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: StrictMaybe ScriptIntegrityHash
mismatchSupplied, StrictMaybe ScriptIntegrityHash
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: StrictMaybe ScriptIntegrityHash
mismatchExpected} ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PPViewHashesDontMatch"
, Key
"fromTxBody" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ScriptIntegrityHash -> Value
renderScriptIntegrityHash (StrictMaybe ScriptIntegrityHash -> Maybe ScriptIntegrityHash
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ScriptIntegrityHash
mismatchSupplied)
, Key
"fromPParams" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ScriptIntegrityHash -> Value
renderScriptIntegrityHash (StrictMaybe ScriptIntegrityHash -> Maybe ScriptIntegrityHash
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ScriptIntegrityHash
mismatchExpected)
]
Conway.UnspendableUTxONoDatumHash NonEmptySet TxIn
ins ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MissingRequiredSigners"
, Key
"txins" Key -> [TxIn] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet TxIn -> [TxIn]
forall a. NonEmptySet a -> [a]
NonEmptySet.toList NonEmptySet TxIn
ins
]
Conway.ExtraRedeemers NonEmpty (PlutusPurpose AsIx ledgerera)
rs ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ExtraRedeemers"
, Key
"rdmrs" Key -> [Value] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (PlutusPurpose AsIx ledgerera -> Value)
-> [PlutusPurpose AsIx ledgerera] -> [Value]
forall a b. (a -> b) -> [a] -> [b]
map PlutusPurpose AsIx ledgerera -> Value
forall era. AnyEraScript era => PlutusPurpose AsIx era -> Value
renderScriptIndex (NonEmpty (PlutusPurpose AsIx ledgerera)
-> [PlutusPurpose AsIx ledgerera]
forall a. NonEmpty a -> [a]
NonEmpty.toList NonEmpty (PlutusPurpose AsIx ledgerera)
rs)
]
Conway.MalformedScriptWitnesses NonEmptySet ScriptHash
scripts ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MalformedScriptWitnesses"
, Key
"scripts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet ScriptHash -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet ScriptHash
scripts
]
Conway.MalformedReferenceScripts NonEmptySet ScriptHash
scripts ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"MalformedReferenceScripts"
, Key
"scripts" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmptySet ScriptHash -> Value
forall a. ToJSON a => NonEmptySet a -> Value
jsonNonEmptySet NonEmptySet ScriptHash
scripts
]
Conway.ScriptIntegrityHashMismatch Mismatch{StrictMaybe ScriptIntegrityHash
mismatchSupplied :: forall (r :: Relation) a. Mismatch r a -> a
mismatchSupplied :: StrictMaybe ScriptIntegrityHash
mismatchSupplied, StrictMaybe ScriptIntegrityHash
mismatchExpected :: forall (r :: Relation) a. Mismatch r a -> a
mismatchExpected :: StrictMaybe ScriptIntegrityHash
mismatchExpected} StrictMaybe ByteString
mBytes ->
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ScriptIntegrityHashMismatch"
, Key
"supplied" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ScriptIntegrityHash -> Value
renderScriptIntegrityHash (StrictMaybe ScriptIntegrityHash -> Maybe ScriptIntegrityHash
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ScriptIntegrityHash
mismatchSupplied)
, Key
"expected" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ScriptIntegrityHash -> Value
renderScriptIntegrityHash (StrictMaybe ScriptIntegrityHash -> Maybe ScriptIntegrityHash
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ScriptIntegrityHash
mismatchExpected)
, Key
"hashHexPreimage" Key -> String -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe ByteString -> String
formatAsHex (StrictMaybe ByteString -> Maybe ByteString
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe ByteString
mBytes)
]
instance LogFormatting (Praos.PraosTiebreakerView crypto) where
forMachine :: DetailLevel -> PraosTiebreakerView crypto -> Object
forMachine
DetailLevel
_dtal
Praos.PraosTiebreakerView
{ SlotNo
ptvSlotNo :: SlotNo
ptvSlotNo :: forall c. PraosTiebreakerView c -> SlotNo
ptvSlotNo
, VKey BlockIssuer
ptvIssuer :: VKey BlockIssuer
ptvIssuer :: forall c. PraosTiebreakerView c -> VKey BlockIssuer
ptvIssuer
, Word64
ptvIssueNo :: Word64
ptvIssueNo :: forall c. PraosTiebreakerView c -> Word64
ptvIssueNo
, OutputVRF (VRF crypto)
ptvTieBreakVRF :: OutputVRF (VRF crypto)
ptvTieBreakVRF :: forall c. PraosTiebreakerView c -> OutputVRF (VRF c)
ptvTieBreakVRF
} =
[Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PraosTiebreakerView"
, Key
"slotNo" Key -> SlotNo -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SlotNo
ptvSlotNo
, Key
"issuerHash" Key -> KeyHash BlockIssuer -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= VKey BlockIssuer -> KeyHash BlockIssuer
forall (kd :: KeyRole). VKey kd -> KeyHash kd
hashKey VKey BlockIssuer
ptvIssuer
, Key
"issueNo" Key -> Word64 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word64
ptvIssueNo
, Key
"tieBreakVRF" Key -> Text -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= OutputVRF (VRF crypto) -> Text
forall {v}. OutputVRF v -> Text
renderVRF OutputVRF (VRF crypto)
ptvTieBreakVRF
]
where
renderVRF :: OutputVRF v -> Text
renderVRF = ByteString -> Text
Text.Encoding.decodeUtf8 (ByteString -> Text)
-> (OutputVRF v -> ByteString) -> OutputVRF v -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> ByteString
B16.encode (ByteString -> ByteString)
-> (OutputVRF v -> ByteString) -> OutputVRF v -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. OutputVRF v -> ByteString
forall v. OutputVRF v -> ByteString
Crypto.getOutputVRFBytes
showLastAppBlockNo :: WithOrigin LastAppliedBlock -> Text
showLastAppBlockNo :: WithOrigin LastAppliedBlock -> Text
showLastAppBlockNo WithOrigin LastAppliedBlock
wOblk = case WithOrigin LastAppliedBlock -> Maybe LastAppliedBlock
forall t. WithOrigin t -> Maybe t
withOriginToMaybe WithOrigin LastAppliedBlock
wOblk of
Maybe LastAppliedBlock
Nothing -> Text
"Genesis Block"
Just LastAppliedBlock
blk -> Word64 -> Text
forall a. Show a => a -> Text
textShow (Word64 -> Text) -> (BlockNo -> Word64) -> BlockNo -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BlockNo -> Word64
unBlockNo (BlockNo -> Text) -> BlockNo -> Text
forall a b. (a -> b) -> a -> b
$ LastAppliedBlock -> BlockNo
labBlockNo LastAppliedBlock
blk