Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
data ModuleList (ms :: [Component]) r where Source #
NilModules :: ModuleList '[] r | |
(:+) :: Module name check deliver query es deps r -> ModuleList ms r -> ModuleList (Module name check deliver query es deps ': ms) r infixr 5 |
data Module (name :: Symbol) (check :: Type) (deliver :: Type) (query :: Type) (es :: EffectRow) (deps :: [Component]) (r :: EffectRow) Source #
Module | |
|
Instances
(Members (DependencyEffs deps) (Effs (m' ': ms) s), Members TxEffs (Effs (m' ': ms) s), Members BaseEffs (Effs (m' ': ms) s), Eval (m' ': ms) s) => Eval (Module name check deliver query es deps ': (m' ': ms)) s Source # | |
Defined in Tendermint.SDK.Application.Module eval :: forall proxy (r :: EffectRow). proxy s -> ModuleList (Module name check deliver query es deps ': (m' ': ms)) r -> forall a. Sem (Effs (Module name check deliver query es deps ': (m' ': ms)) s) a -> Sem (TxEffs :& BaseAppEffs s) a Source # | |
DependencyEffs deps ~ ('[] :: [Effect]) => Eval '[Module name check deliver query es deps] core Source # | |
Defined in Tendermint.SDK.Application.Module eval :: forall proxy (r :: EffectRow). proxy core -> ModuleList '[Module name check deliver query es deps] r -> forall a. Sem (Effs '[Module name check deliver query es deps] core) a -> Sem (TxEffs :& BaseAppEffs core) a Source # | |
ToApplication (m' ': ms) r => ToApplication (Module name check deliver query es deps ': (m' ': ms)) r Source # | |
Defined in Tendermint.SDK.Application.Module type ApplicationC (Module name check deliver query es deps ': (m' ': ms)) Source # type ApplicationD (Module name check deliver query es deps ': (m' ': ms)) Source # type ApplicationQ (Module name check deliver query es deps ': (m' ': ms)) Source # toApplication :: ModuleList (Module name check deliver query es deps ': (m' ': ms)) r -> Application (ApplicationC (Module name check deliver query es deps ': (m' ': ms))) (ApplicationD (Module name check deliver query es deps ': (m' ': ms))) (ApplicationQ (Module name check deliver query es deps ': (m' ': ms))) r r Source # | |
ToApplication '[Module name check deliver query es deps] r Source # | |
Defined in Tendermint.SDK.Application.Module type ApplicationC '[Module name check deliver query es deps] Source # type ApplicationD '[Module name check deliver query es deps] Source # type ApplicationQ '[Module name check deliver query es deps] Source # toApplication :: ModuleList '[Module name check deliver query es deps] r -> Application (ApplicationC '[Module name check deliver query es deps]) (ApplicationD '[Module name check deliver query es deps]) (ApplicationQ '[Module name check deliver query es deps]) r r Source # | |
type ApplicationC (Module name check deliver query es deps ': (m' ': ms)) Source # | |
Defined in Tendermint.SDK.Application.Module type ApplicationC (Module name check deliver query es deps ': (m' ': ms)) = (name :> check) :<|> ApplicationC (m' ': ms) | |
type ApplicationC '[Module name check deliver query es deps] Source # | |
Defined in Tendermint.SDK.Application.Module | |
type ApplicationD (Module name check deliver query es deps ': (m' ': ms)) Source # | |
Defined in Tendermint.SDK.Application.Module type ApplicationD (Module name check deliver query es deps ': (m' ': ms)) = (name :> deliver) :<|> ApplicationD (m' ': ms) | |
type ApplicationD '[Module name check deliver query es deps] Source # | |
Defined in Tendermint.SDK.Application.Module | |
type ApplicationQ (Module name check deliver query es deps ': (m' ': ms)) Source # | |
Defined in Tendermint.SDK.Application.Module type ApplicationQ (Module name check deliver query es deps ': (m' ': ms)) = (name :> query) :<|> ApplicationQ (m' ': ms) | |
type ApplicationQ '[Module name check deliver query es deps] Source # | |
Defined in Tendermint.SDK.Application.Module | |
type Effs (Module name check deliver query es deps ': (m' ': ms)) s Source # | |
Defined in Tendermint.SDK.Application.Module | |
type Effs '[Module name check deliver query es deps] core Source # | |
Defined in Tendermint.SDK.Application.Module |
class Eval ms (core :: EffectRow) where Source #
eval :: proxy core -> ModuleList ms r -> forall a. Sem (Effs ms core) a -> Sem (TxEffs :& BaseAppEffs core) a Source #
Instances
(Members (DependencyEffs deps) (Effs (m' ': ms) s), Members TxEffs (Effs (m' ': ms) s), Members BaseEffs (Effs (m' ': ms) s), Eval (m' ': ms) s) => Eval (Module name check deliver query es deps ': (m' ': ms)) s Source # | |
Defined in Tendermint.SDK.Application.Module eval :: forall proxy (r :: EffectRow). proxy s -> ModuleList (Module name check deliver query es deps ': (m' ': ms)) r -> forall a. Sem (Effs (Module name check deliver query es deps ': (m' ': ms)) s) a -> Sem (TxEffs :& BaseAppEffs s) a Source # | |
DependencyEffs deps ~ ('[] :: [Effect]) => Eval '[Module name check deliver query es deps] core Source # | |
Defined in Tendermint.SDK.Application.Module eval :: forall proxy (r :: EffectRow). proxy core -> ModuleList '[Module name check deliver query es deps] r -> forall a. Sem (Effs '[Module name check deliver query es deps] core) a -> Sem (TxEffs :& BaseAppEffs core) a Source # |
type family ModuleEffs (m :: Component) :: EffectRow where ... Source #
ModuleEffs (Module _ _ _ _ es deps) = es :& (DependencyEffs deps :& (TxEffs :& BaseEffs)) | |
ModuleEffs _ = TypeError ('Text "ModuleEffs is a partial function defined only on Component") |
data HandlersContext alg ms core Source #
HandlersContext | |
|
baseAppAnteHandler :: Members AuthEffs r => Member (Error AppError) r => AnteHandler r Source #
makeApp :: forall alg ms core. RecoverableSignatureSchema alg => Message alg ~ Digest SHA256 => Member (Embed IO) core => ToApplication ms (Effs ms core) => HasTxRouter (ApplicationC ms) (Effs ms core) 'QueryAndMempool => HasTxRouter (ApplicationC ms) (BaseAppEffs core) 'QueryAndMempool => HasTxRouter (ApplicationD ms) (Effs ms core) 'Consensus => HasTxRouter (ApplicationD ms) (BaseAppEffs core) 'Consensus => HasQueryRouter (ApplicationQ ms) (Effs ms core) => HasQueryRouter (ApplicationQ ms) (BaseAppEffs core) => Eval ms core => HandlersContext alg ms core -> App (Sem core) Source #