{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Cardano.Ledger.Babbage.Rules.Ledger (LEDGER) where
import qualified Cardano.Ledger.Allegra.Rules as Allegra
import qualified Cardano.Ledger.Alonzo.Rules as Alonzo
import Cardano.Ledger.Babbage.Core
import Cardano.Ledger.Babbage.Era (BabbageEra, LEDGER)
import Cardano.Ledger.Babbage.Rules.Delegs ()
import Cardano.Ledger.Babbage.Rules.Utxo (BabbageUtxoPredFailure)
import Cardano.Ledger.Babbage.Rules.Utxow (BabbageUtxowPredFailure, UTXOW)
import Cardano.Ledger.BaseTypes (ShelleyBase)
import Cardano.Ledger.Shelley.LedgerState (
CertState,
LedgerState (..),
UTxOState (..),
)
import qualified Cardano.Ledger.Shelley.Rules as Shelley
import Cardano.Ledger.State (EraCertState)
import Control.State.Transition (
Embed (..),
STS (..),
)
import Data.Sequence (Seq)
type instance EraRuleFailure "LEDGER" BabbageEra = Shelley.ShelleyLedgerPredFailure BabbageEra
instance InjectRuleFailure "LEDGER" Shelley.ShelleyLedgerPredFailure BabbageEra
instance InjectRuleFailure "LEDGER" BabbageUtxowPredFailure BabbageEra where
injectFailure :: BabbageUtxowPredFailure BabbageEra
-> EraRuleFailure "LEDGER" BabbageEra
injectFailure = PredicateFailure (EraRule "UTXOW" BabbageEra)
-> ShelleyLedgerPredFailure BabbageEra
BabbageUtxowPredFailure BabbageEra
-> EraRuleFailure "LEDGER" BabbageEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> ShelleyLedgerPredFailure era
Shelley.UtxowFailure
instance InjectRuleFailure "LEDGER" Alonzo.AlonzoUtxowPredFailure BabbageEra where
injectFailure :: AlonzoUtxowPredFailure BabbageEra
-> EraRuleFailure "LEDGER" BabbageEra
injectFailure = PredicateFailure (EraRule "UTXOW" BabbageEra)
-> ShelleyLedgerPredFailure BabbageEra
BabbageUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> ShelleyLedgerPredFailure era
Shelley.UtxowFailure (BabbageUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra)
-> (AlonzoUtxowPredFailure BabbageEra
-> BabbageUtxowPredFailure BabbageEra)
-> AlonzoUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoUtxowPredFailure BabbageEra
-> EraRuleFailure "UTXOW" BabbageEra
AlonzoUtxowPredFailure BabbageEra
-> BabbageUtxowPredFailure BabbageEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" Shelley.ShelleyUtxowPredFailure BabbageEra where
injectFailure :: ShelleyUtxowPredFailure BabbageEra
-> EraRuleFailure "LEDGER" BabbageEra
injectFailure = PredicateFailure (EraRule "UTXOW" BabbageEra)
-> ShelleyLedgerPredFailure BabbageEra
BabbageUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> ShelleyLedgerPredFailure era
Shelley.UtxowFailure (BabbageUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra)
-> (ShelleyUtxowPredFailure BabbageEra
-> BabbageUtxowPredFailure BabbageEra)
-> ShelleyUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyUtxowPredFailure BabbageEra
-> EraRuleFailure "UTXOW" BabbageEra
ShelleyUtxowPredFailure BabbageEra
-> BabbageUtxowPredFailure BabbageEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" BabbageUtxoPredFailure BabbageEra where
injectFailure :: BabbageUtxoPredFailure BabbageEra
-> EraRuleFailure "LEDGER" BabbageEra
injectFailure = PredicateFailure (EraRule "UTXOW" BabbageEra)
-> ShelleyLedgerPredFailure BabbageEra
BabbageUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> ShelleyLedgerPredFailure era
Shelley.UtxowFailure (BabbageUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra)
-> (BabbageUtxoPredFailure BabbageEra
-> BabbageUtxowPredFailure BabbageEra)
-> BabbageUtxoPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BabbageUtxoPredFailure BabbageEra
-> EraRuleFailure "UTXOW" BabbageEra
BabbageUtxoPredFailure BabbageEra
-> BabbageUtxowPredFailure BabbageEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" Alonzo.AlonzoUtxoPredFailure BabbageEra where
injectFailure :: AlonzoUtxoPredFailure BabbageEra
-> EraRuleFailure "LEDGER" BabbageEra
injectFailure = PredicateFailure (EraRule "UTXOW" BabbageEra)
-> ShelleyLedgerPredFailure BabbageEra
BabbageUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> ShelleyLedgerPredFailure era
Shelley.UtxowFailure (BabbageUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra)
-> (AlonzoUtxoPredFailure BabbageEra
-> BabbageUtxowPredFailure BabbageEra)
-> AlonzoUtxoPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoUtxoPredFailure BabbageEra
-> EraRuleFailure "UTXOW" BabbageEra
AlonzoUtxoPredFailure BabbageEra
-> BabbageUtxowPredFailure BabbageEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" Alonzo.AlonzoUtxosPredFailure BabbageEra where
injectFailure :: AlonzoUtxosPredFailure BabbageEra
-> EraRuleFailure "LEDGER" BabbageEra
injectFailure = PredicateFailure (EraRule "UTXOW" BabbageEra)
-> ShelleyLedgerPredFailure BabbageEra
BabbageUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> ShelleyLedgerPredFailure era
Shelley.UtxowFailure (BabbageUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra)
-> (AlonzoUtxosPredFailure BabbageEra
-> BabbageUtxowPredFailure BabbageEra)
-> AlonzoUtxosPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoUtxosPredFailure BabbageEra
-> EraRuleFailure "UTXOW" BabbageEra
AlonzoUtxosPredFailure BabbageEra
-> BabbageUtxowPredFailure BabbageEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" Shelley.ShelleyPpupPredFailure BabbageEra where
injectFailure :: ShelleyPpupPredFailure BabbageEra
-> EraRuleFailure "LEDGER" BabbageEra
injectFailure = PredicateFailure (EraRule "UTXOW" BabbageEra)
-> ShelleyLedgerPredFailure BabbageEra
BabbageUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> ShelleyLedgerPredFailure era
Shelley.UtxowFailure (BabbageUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra)
-> (ShelleyPpupPredFailure BabbageEra
-> BabbageUtxowPredFailure BabbageEra)
-> ShelleyPpupPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyPpupPredFailure BabbageEra
-> EraRuleFailure "UTXOW" BabbageEra
ShelleyPpupPredFailure BabbageEra
-> BabbageUtxowPredFailure BabbageEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" Shelley.ShelleyUtxoPredFailure BabbageEra where
injectFailure :: ShelleyUtxoPredFailure BabbageEra
-> EraRuleFailure "LEDGER" BabbageEra
injectFailure = PredicateFailure (EraRule "UTXOW" BabbageEra)
-> ShelleyLedgerPredFailure BabbageEra
BabbageUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> ShelleyLedgerPredFailure era
Shelley.UtxowFailure (BabbageUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra)
-> (ShelleyUtxoPredFailure BabbageEra
-> BabbageUtxowPredFailure BabbageEra)
-> ShelleyUtxoPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyUtxoPredFailure BabbageEra
-> EraRuleFailure "UTXOW" BabbageEra
ShelleyUtxoPredFailure BabbageEra
-> BabbageUtxowPredFailure BabbageEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" Allegra.AllegraUtxoPredFailure BabbageEra where
injectFailure :: AllegraUtxoPredFailure BabbageEra
-> EraRuleFailure "LEDGER" BabbageEra
injectFailure = PredicateFailure (EraRule "UTXOW" BabbageEra)
-> ShelleyLedgerPredFailure BabbageEra
BabbageUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> ShelleyLedgerPredFailure era
Shelley.UtxowFailure (BabbageUtxowPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra)
-> (AllegraUtxoPredFailure BabbageEra
-> BabbageUtxowPredFailure BabbageEra)
-> AllegraUtxoPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AllegraUtxoPredFailure BabbageEra
-> EraRuleFailure "UTXOW" BabbageEra
AllegraUtxoPredFailure BabbageEra
-> BabbageUtxowPredFailure BabbageEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" Shelley.ShelleyDelegsPredFailure BabbageEra where
injectFailure :: ShelleyDelegsPredFailure BabbageEra
-> EraRuleFailure "LEDGER" BabbageEra
injectFailure = PredicateFailure (EraRule "DELEGS" BabbageEra)
-> ShelleyLedgerPredFailure BabbageEra
ShelleyDelegsPredFailure BabbageEra
-> EraRuleFailure "LEDGER" BabbageEra
forall era.
PredicateFailure (EraRule "DELEGS" era)
-> ShelleyLedgerPredFailure era
Shelley.DelegsFailure
instance InjectRuleFailure "LEDGER" Shelley.ShelleyDelplPredFailure BabbageEra where
injectFailure :: ShelleyDelplPredFailure BabbageEra
-> EraRuleFailure "LEDGER" BabbageEra
injectFailure = PredicateFailure (EraRule "DELEGS" BabbageEra)
-> ShelleyLedgerPredFailure BabbageEra
ShelleyDelegsPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall era.
PredicateFailure (EraRule "DELEGS" era)
-> ShelleyLedgerPredFailure era
Shelley.DelegsFailure (ShelleyDelegsPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra)
-> (ShelleyDelplPredFailure BabbageEra
-> ShelleyDelegsPredFailure BabbageEra)
-> ShelleyDelplPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyDelplPredFailure BabbageEra
-> EraRuleFailure "DELEGS" BabbageEra
ShelleyDelplPredFailure BabbageEra
-> ShelleyDelegsPredFailure BabbageEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" Shelley.ShelleyPoolPredFailure BabbageEra where
injectFailure :: ShelleyPoolPredFailure BabbageEra
-> EraRuleFailure "LEDGER" BabbageEra
injectFailure = PredicateFailure (EraRule "DELEGS" BabbageEra)
-> ShelleyLedgerPredFailure BabbageEra
ShelleyDelegsPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall era.
PredicateFailure (EraRule "DELEGS" era)
-> ShelleyLedgerPredFailure era
Shelley.DelegsFailure (ShelleyDelegsPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra)
-> (ShelleyPoolPredFailure BabbageEra
-> ShelleyDelegsPredFailure BabbageEra)
-> ShelleyPoolPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyPoolPredFailure BabbageEra
-> EraRuleFailure "DELEGS" BabbageEra
ShelleyPoolPredFailure BabbageEra
-> ShelleyDelegsPredFailure BabbageEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" Shelley.ShelleyDelegPredFailure BabbageEra where
injectFailure :: ShelleyDelegPredFailure BabbageEra
-> EraRuleFailure "LEDGER" BabbageEra
injectFailure = PredicateFailure (EraRule "DELEGS" BabbageEra)
-> ShelleyLedgerPredFailure BabbageEra
ShelleyDelegsPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall era.
PredicateFailure (EraRule "DELEGS" era)
-> ShelleyLedgerPredFailure era
Shelley.DelegsFailure (ShelleyDelegsPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra)
-> (ShelleyDelegPredFailure BabbageEra
-> ShelleyDelegsPredFailure BabbageEra)
-> ShelleyDelegPredFailure BabbageEra
-> ShelleyLedgerPredFailure BabbageEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyDelegPredFailure BabbageEra
-> EraRuleFailure "DELEGS" BabbageEra
ShelleyDelegPredFailure BabbageEra
-> ShelleyDelegsPredFailure BabbageEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance
( AlonzoEraTx era
, EraGov era
, Embed (EraRule "DELEGS" era) (LEDGER era)
, Embed (EraRule "UTXOW" era) (LEDGER era)
, Environment (EraRule "UTXOW" era) ~ Shelley.UtxoEnv era
, State (EraRule "UTXOW" era) ~ UTxOState era
, Signal (EraRule "UTXOW" era) ~ StAnnTx TopTx era
, Environment (EraRule "DELEGS" era) ~ Shelley.DelegsEnv era
, State (EraRule "DELEGS" era) ~ CertState era
, Signal (EraRule "DELEGS" era) ~ Seq (TxCert era)
, AtMostEra "Babbage" era
, EraCertState era
, EraRule "LEDGER" era ~ LEDGER era
, EraRuleFailure "LEDGER" era ~ Shelley.ShelleyLedgerPredFailure era
, InjectRuleFailure "LEDGER" Shelley.ShelleyLedgerPredFailure era
) =>
STS (LEDGER era)
where
type State (LEDGER era) = LedgerState era
type Signal (LEDGER era) = StAnnTx TopTx era
type Environment (LEDGER era) = Shelley.LedgerEnv era
type BaseM (LEDGER era) = ShelleyBase
type PredicateFailure (LEDGER era) = Shelley.ShelleyLedgerPredFailure era
type Event (LEDGER era) = Shelley.ShelleyLedgerEvent era
initialRules :: [InitialRule (LEDGER era)]
initialRules = []
transitionRules :: [TransitionRule (LEDGER era)]
transitionRules = [forall (someLEDGER :: * -> *) era.
(STS (someLEDGER era), BaseM (someLEDGER era) ~ ShelleyBase,
Signal (someLEDGER era) ~ StAnnTx TopTx era,
State (someLEDGER era) ~ LedgerState era,
Environment (someLEDGER era) ~ LedgerEnv era,
Embed (EraRule "UTXOW" era) (someLEDGER era),
Embed (EraRule "DELEGS" era) (someLEDGER era),
Environment (EraRule "DELEGS" era) ~ DelegsEnv era,
State (EraRule "DELEGS" era) ~ CertState era,
Signal (EraRule "DELEGS" era) ~ Seq (TxCert era),
Environment (EraRule "UTXOW" era) ~ UtxoEnv era,
State (EraRule "UTXOW" era) ~ UTxOState era,
Signal (EraRule "UTXOW" era) ~ StAnnTx TopTx era, AlonzoEraTx era,
EraCertState era, EraRule "LEDGER" era ~ someLEDGER era,
InjectRuleFailure "LEDGER" ShelleyLedgerPredFailure era) =>
TransitionRule (someLEDGER era)
Alonzo.ledgerTransition @LEDGER]
renderAssertionViolation :: AssertionViolation (LEDGER era) -> String
renderAssertionViolation = AssertionViolation (LEDGER era) -> String
forall era t.
(EraTx era, EraGov era, EraCertState era,
Environment t ~ LedgerEnv era, Signal t ~ StAnnTx TopTx era,
State t ~ LedgerState era) =>
AssertionViolation t -> String
Shelley.renderDepositEqualsObligationViolation
assertions :: [Assertion (LEDGER era)]
assertions = [Assertion (LEDGER era)]
forall era (rule :: * -> *).
(EraGov era, EraCertState era,
State (rule era) ~ LedgerState era) =>
[Assertion (rule era)]
Shelley.shelleyLedgerAssertions
instance
( Era era
, STS (Shelley.DELEGS era)
, PredicateFailure (EraRule "DELEGS" era) ~ Shelley.ShelleyDelegsPredFailure era
, Event (EraRule "DELEGS" era) ~ Shelley.ShelleyDelegsEvent era
) =>
Embed (Shelley.DELEGS era) (LEDGER era)
where
wrapFailed :: PredicateFailure (DELEGS era) -> PredicateFailure (LEDGER era)
wrapFailed = PredicateFailure (EraRule "DELEGS" era)
-> ShelleyLedgerPredFailure era
PredicateFailure (DELEGS era) -> PredicateFailure (LEDGER era)
forall era.
PredicateFailure (EraRule "DELEGS" era)
-> ShelleyLedgerPredFailure era
Shelley.DelegsFailure
wrapEvent :: Event (DELEGS era) -> Event (LEDGER era)
wrapEvent = Event (EraRule "DELEGS" era) -> ShelleyLedgerEvent era
Event (DELEGS era) -> Event (LEDGER era)
forall era. Event (EraRule "DELEGS" era) -> ShelleyLedgerEvent era
Shelley.DelegsEvent
instance
( Era era
, STS (UTXOW era)
, Event (EraRule "UTXOW" era) ~ Alonzo.AlonzoUtxowEvent era
, PredicateFailure (EraRule "UTXOW" era) ~ BabbageUtxowPredFailure era
) =>
Embed (UTXOW era) (LEDGER era)
where
wrapFailed :: PredicateFailure (UTXOW era) -> PredicateFailure (LEDGER era)
wrapFailed = PredicateFailure (EraRule "UTXOW" era)
-> ShelleyLedgerPredFailure era
PredicateFailure (UTXOW era) -> PredicateFailure (LEDGER era)
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> ShelleyLedgerPredFailure era
Shelley.UtxowFailure
wrapEvent :: Event (UTXOW era) -> Event (LEDGER era)
wrapEvent = Event (EraRule "UTXOW" era) -> ShelleyLedgerEvent era
Event (UTXOW era) -> Event (LEDGER era)
forall era. Event (EraRule "UTXOW" era) -> ShelleyLedgerEvent era
Shelley.UtxowEvent
instance
( Era era
, STS (LEDGER era)
, PredicateFailure (EraRule "LEDGER" era) ~ Shelley.ShelleyLedgerPredFailure era
, Event (EraRule "LEDGER" era) ~ Shelley.ShelleyLedgerEvent era
) =>
Embed (LEDGER era) (Shelley.LEDGERS era)
where
wrapFailed :: PredicateFailure (LEDGER era) -> PredicateFailure (LEDGERS era)
wrapFailed = PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
PredicateFailure (LEDGER era) -> PredicateFailure (LEDGERS era)
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
Shelley.LedgerFailure
wrapEvent :: Event (LEDGER era) -> Event (LEDGERS era)
wrapEvent = Event (EraRule "LEDGER" era) -> ShelleyLedgersEvent era
Event (LEDGER era) -> Event (LEDGERS era)
forall era. Event (EraRule "LEDGER" era) -> ShelleyLedgersEvent era
Shelley.LedgerEvent