Safe Haskell | None |
---|---|
Language | Haskell2010 |
Tendermint.SDK.BaseApp.Transaction
Contents
Synopsis
- serveTxApplication :: HasTxRouter layout r scope => Proxy layout -> Proxy r -> Proxy scope -> RouteTx layout (TxEffs :& r) -> TransactionApplication (Sem r)
- module Tendermint.SDK.BaseApp.Transaction.Types
- class HasTxRouter layout (r :: EffectRow) (scope :: Scope) where
- type RouteTx layout (s :: EffectRow) :: Type
- routeTx :: Proxy layout -> Proxy r -> Proxy scope -> Delayed (Sem r) env (RoutingTx ByteString) (RouteTx layout (TxEffs :& r)) -> Router env r (RoutingTx ByteString) (TxResult, Maybe Cache)
- applyAnteHandler :: Proxy layout -> Proxy r -> Proxy scope -> AnteHandler r -> RouteTx layout r -> RouteTx layout r
- hoistTxRouter :: Proxy layout -> Proxy r -> Proxy scope -> (forall a. Sem s a -> Sem s' a) -> RouteTx layout s -> RouteTx layout s'
- emptyTxServer :: RouteTx EmptyTxServer r
- class DefaultCheckTx api (r :: EffectRow) where
- type DefaultCheckTxT api r :: Type
- defaultCheckTx :: Proxy api -> Proxy r -> DefaultCheckTxT api r
- type family VoidReturn (api :: Type) :: Type where ...
- type TxEffs = [Output Event, GasMeter, WriteStore, ReadStore, Error AppError]
- evalReadOnly :: forall r. forall a. Sem (TxEffs :& r) a -> Sem (ReadStore ': (Error AppError ': r)) a
- type AnteHandler r = forall msg a. Endo (RoutingTx msg -> Sem r a)
Documentation
serveTxApplication :: HasTxRouter layout r scope => Proxy layout -> Proxy r -> Proxy scope -> RouteTx layout (TxEffs :& r) -> TransactionApplication (Sem r) Source #
Re-Exports
class HasTxRouter layout (r :: EffectRow) (scope :: Scope) where Source #
Methods
routeTx :: Proxy layout -> Proxy r -> Proxy scope -> Delayed (Sem r) env (RoutingTx ByteString) (RouteTx layout (TxEffs :& r)) -> Router env r (RoutingTx ByteString) (TxResult, Maybe Cache) Source #
applyAnteHandler :: Proxy layout -> Proxy r -> Proxy scope -> AnteHandler r -> RouteTx layout r -> RouteTx layout r Source #
hoistTxRouter :: Proxy layout -> Proxy r -> Proxy scope -> (forall a. Sem s a -> Sem s' a) -> RouteTx layout s -> RouteTx layout s' Source #
Instances
HasTxRouter EmptyTxServer r scope Source # | |
Defined in Tendermint.SDK.BaseApp.Transaction.Router Associated Types type RouteTx EmptyTxServer s Source # Methods routeTx :: Proxy EmptyTxServer -> Proxy r -> Proxy scope -> Delayed (Sem r) env (RoutingTx ByteString) (RouteTx EmptyTxServer (TxEffs :& r)) -> Router env r (RoutingTx ByteString) (TxResult, Maybe Cache) Source # applyAnteHandler :: Proxy EmptyTxServer -> Proxy r -> Proxy scope -> AnteHandler r -> RouteTx EmptyTxServer r -> RouteTx EmptyTxServer r Source # hoistTxRouter :: forall (s :: EffectRow) (s' :: EffectRow). Proxy EmptyTxServer -> Proxy r -> Proxy scope -> (forall a. Sem s a -> Sem s' a) -> RouteTx EmptyTxServer s -> RouteTx EmptyTxServer s' Source # | |
(HasTxRouter a r scope, HasTxRouter b r scope) => HasTxRouter (a :<|> b :: Type) r scope Source # | |
Defined in Tendermint.SDK.BaseApp.Transaction.Router Methods routeTx :: Proxy (a :<|> b) -> Proxy r -> Proxy scope -> Delayed (Sem r) env (RoutingTx ByteString) (RouteTx (a :<|> b) (TxEffs :& r)) -> Router env r (RoutingTx ByteString) (TxResult, Maybe Cache) Source # applyAnteHandler :: Proxy (a :<|> b) -> Proxy r -> Proxy scope -> AnteHandler r -> RouteTx (a :<|> b) r -> RouteTx (a :<|> b) r Source # hoistTxRouter :: forall (s :: EffectRow) (s' :: EffectRow). Proxy (a :<|> b) -> Proxy r -> Proxy scope -> (forall a0. Sem s a0 -> Sem s' a0) -> RouteTx (a :<|> b) s -> RouteTx (a :<|> b) s' Source # | |
(HasTxRouter sublayout r scope, KnownSymbol path) => HasTxRouter (path :> sublayout :: Type) r scope Source # | |
Defined in Tendermint.SDK.BaseApp.Transaction.Router Methods routeTx :: Proxy (path :> sublayout) -> Proxy r -> Proxy scope -> Delayed (Sem r) env (RoutingTx ByteString) (RouteTx (path :> sublayout) (TxEffs :& r)) -> Router env r (RoutingTx ByteString) (TxResult, Maybe Cache) Source # applyAnteHandler :: Proxy (path :> sublayout) -> Proxy r -> Proxy scope -> AnteHandler r -> RouteTx (path :> sublayout) r -> RouteTx (path :> sublayout) r Source # hoistTxRouter :: forall (s :: EffectRow) (s' :: EffectRow). Proxy (path :> sublayout) -> Proxy r -> Proxy scope -> (forall a. Sem s a -> Sem s' a) -> RouteTx (path :> sublayout) s -> RouteTx (path :> sublayout) s' Source # | |
(HasMessageType msg, HasCodec msg, Members '[Tagged scope (ReadStore :: (Type -> Type) -> Type -> Type), Embed IO] r, HasCodec a) => HasTxRouter (TypedMessage msg :~> Return a :: Type) r scope Source # | |
Defined in Tendermint.SDK.BaseApp.Transaction.Router Methods routeTx :: Proxy (TypedMessage msg :~> Return a) -> Proxy r -> Proxy scope -> Delayed (Sem r) env (RoutingTx ByteString) (RouteTx (TypedMessage msg :~> Return a) (TxEffs :& r)) -> Router env r (RoutingTx ByteString) (TxResult, Maybe Cache) Source # applyAnteHandler :: Proxy (TypedMessage msg :~> Return a) -> Proxy r -> Proxy scope -> AnteHandler r -> RouteTx (TypedMessage msg :~> Return a) r -> RouteTx (TypedMessage msg :~> Return a) r Source # hoistTxRouter :: forall (s :: EffectRow) (s' :: EffectRow). Proxy (TypedMessage msg :~> Return a) -> Proxy r -> Proxy scope -> (forall a0. Sem s a0 -> Sem s' a0) -> RouteTx (TypedMessage msg :~> Return a) s -> RouteTx (TypedMessage msg :~> Return a) s' Source # |
class DefaultCheckTx api (r :: EffectRow) where Source #
Associated Types
type DefaultCheckTxT api r :: Type Source #
Methods
defaultCheckTx :: Proxy api -> Proxy r -> DefaultCheckTxT api r Source #
Instances
type family VoidReturn (api :: Type) :: Type where ... Source #
Equations
VoidReturn (a :<|> b) = VoidReturn a :<|> VoidReturn b | |
VoidReturn (path :> a) = path :> VoidReturn a | |
VoidReturn (TypedMessage msg :~> Return a) = TypedMessage msg :~> Return () |
evalReadOnly :: forall r. forall a. Sem (TxEffs :& r) a -> Sem (ReadStore ': (Error AppError ': r)) a Source #
type AnteHandler r = forall msg a. Endo (RoutingTx msg -> Sem r a) Source #