module Tendermint.SDK.Modules.Validators ( Validators , validatorsModule , module Tendermint.SDK.Modules.Validators.Keeper , module Tendermint.SDK.Modules.Validators.Types , endBlock ) where import Polysemy (Members) import Tendermint.SDK.Application (Module (..), ModuleEffs) import Tendermint.SDK.BaseApp (EmptyTxServer (..)) import Tendermint.SDK.Modules.Validators.EndBlock import Tendermint.SDK.Modules.Validators.Keeper import Tendermint.SDK.Modules.Validators.Query import Tendermint.SDK.Modules.Validators.Types type Validators = Module ValidatorsName EmptyTxServer EmptyTxServer QueryApi ValidatorsEffs '[] validatorsModule :: Members (ModuleEffs Validators) r => Validators r validatorsModule :: Validators r validatorsModule = Module :: forall (name :: Symbol) check deliver query (es :: EffectRow) (deps :: [Component]) (r :: EffectRow). RouteTx check r -> RouteTx deliver r -> RouteQ query r -> (forall (s :: EffectRow) a. (Members TxEffs s, Members BaseEffs s, Members (DependencyEffs deps) s) => Sem (es :& s) a -> Sem s a) -> Module name check deliver query es deps r Module { moduleTxDeliverer :: RouteTx EmptyTxServer r moduleTxDeliverer = EmptyTxServer RouteTx EmptyTxServer r EmptyTxServer, moduleTxChecker :: RouteTx EmptyTxServer r moduleTxChecker = EmptyTxServer RouteTx EmptyTxServer r EmptyTxServer, moduleQuerier :: RouteQ QueryApi r moduleQuerier = RouteQ QueryApi r forall (r :: EffectRow). (Members QueryEffs r, Members ValidatorsEffs r) => RouteQ QueryApi r querier, moduleEval :: forall (s :: EffectRow) a. (Members TxEffs s, Members BaseEffs s, Members (DependencyEffs '[]) s) => Sem (ValidatorsEffs :& s) a -> Sem s a moduleEval = forall (s :: EffectRow) a. (Members TxEffs s, Members BaseEffs s, Members (DependencyEffs '[]) s) => Sem (ValidatorsEffs :& s) a -> Sem s a forall (r :: EffectRow) a. Members '[ReadStore, WriteStore, Error AppError] r => Sem (ValidatorsKeeper : r) a -> Sem r a eval }