hs-abci-sdk-0.1.0.0
Safe HaskellNone
LanguageHaskell2010

Tendermint.SDK.BaseApp

Synopsis

BaseApp

type BaseEffs = [Metrics, Logger, Resource, Error AppError] Source #

Concrete row of effects for the BaseApp. Note that because there does | not exist an interpreter for an untagged RawStore, you must scope | these effects before they can be interpreted.

type family (as :: [a]) :& (bs :: [a]) :: [a] where ... infixr 5 Source #

This type family gives a nice syntax for combining multiple lists of effects.

Equations

'[] :& bs = bs 
(a ': as) :& bs = a ': (as :& bs) 

Core Effects

type CoreEffs = '[Reader LogConfig, Reader (Maybe PrometheusEnv), Reader IAVLVersions, Reader GrpcClient, Embed IO] Source #

CoreEffs is one level below BaseAppEffs, and provides one possible | interpretation for its effects to IO.

runCoreEffs :: Context -> forall a. Sem CoreEffs a -> IO a Source #

The standard interpeter for CoreEffs.

Pure Effects

type PureCoreEffs = '[Reader LogConfig, Reader DBVersions, Reader DB, Error AppError, Embed IO] Source #

CoreEffs is one level below BaseAppEffs, and provides one possible | interpretation for its effects to IO.

data PureContext Source #

Context is the environment required to run CoreEffsPure to IO

runPureCoreEffs :: PureContext -> forall a. Sem PureCoreEffs a -> IO (Either AppError a) Source #

The standard interpeter for PureCoreEffs.

Store

data ReadStore m a Source #

Read and Write Effects

Instances

Instances details
type DefiningModule (ReadStore :: k -> Type -> Type) Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Store.RawStore

type DefiningModule (ReadStore :: k -> Type -> Type) = "Tendermint.SDK.BaseApp.Store.RawStore"

data WriteStore m a Source #

Instances

Instances details
type DefiningModule (WriteStore :: k -> Type -> Type) Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Store.RawStore

type DefiningModule (WriteStore :: k -> Type -> Type) = "Tendermint.SDK.BaseApp.Store.RawStore"

class RawKey k where Source #

Keys

Methods

rawKey :: Iso' k ByteString Source #

Instances

Instances details
RawKey Word64 Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Store.RawStore

RawKey () Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Store.RawStore

Methods

rawKey :: Iso' () ByteString Source #

RawKey Text Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Store.RawStore

Methods

rawKey :: Iso' Text ByteString Source #

RawKey Address Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Store.RawStore

RawKey PubKey_ Source # 
Instance details

Defined in Tendermint.SDK.Modules.Validators.Types

class RawKey k => IsKey k ns where Source #

Minimal complete definition

Nothing

Associated Types

type Value k ns :: Type Source #

Methods

prefix :: Proxy k -> Proxy ns -> ByteString Source #

default prefix :: Proxy k -> Proxy ns -> ByteString Source #

Instances

Instances details
IsKey () (Var a :: Type) Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Store.Var

Associated Types

type Value () (Var a) Source #

Methods

prefix :: Proxy () -> Proxy (Var a) -> ByteString Source #

RawKey k => IsKey k (Map k v :: Type) Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Store.Map

Associated Types

type Value k (Map k v) Source #

Methods

prefix :: Proxy k -> Proxy (Map k v) -> ByteString Source #

data Store ns Source #

newtype KeyRoot ns Source #

Store

Constructors

KeyRoot ByteString 

Instances

Instances details
Eq (KeyRoot ns) Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Store.RawStore

Methods

(==) :: KeyRoot ns -> KeyRoot ns -> Bool #

(/=) :: KeyRoot ns -> KeyRoot ns -> Bool #

Show (KeyRoot ns) Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Store.RawStore

Methods

showsPrec :: Int -> KeyRoot ns -> ShowS #

show :: KeyRoot ns -> String #

showList :: [KeyRoot ns] -> ShowS #

put :: forall k r ns. IsKey k ns => HasCodec (Value k ns) => Member WriteStore r => Store ns -> k -> Value k ns -> Sem r () Source #

get :: forall k r ns. IsKey k ns => HasCodec (Value k ns) => Members [ReadStore, Error AppError] r => Store ns -> k -> Sem r (Maybe (Value k ns)) Source #

delete :: forall k ns r. IsKey k ns => Member WriteStore r => Store ns -> k -> Sem r () Source #

Query Routes

data Leaf (a :: Type) Source #

Instances

Instances details
(Member (Tagged 'QueryAndMempool (ReadStore :: (Type -> Type) -> Type -> Type)) r, HasCodec a) => HasQueryRouter (Leaf a :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Router

Associated Types

type RouteQ (Leaf a) r Source #

Methods

routeQ :: Proxy (Leaf a) -> Proxy r -> Delayed (Sem r) env QueryRequest (RouteQ (Leaf a) (QueryEffs :& r)) -> Router env r QueryRequest Query Source #

hoistQueryRouter :: forall (s :: EffectRow) (s' :: EffectRow). Proxy (Leaf a) -> Proxy r -> (forall a0. Sem s a0 -> Sem s' a0) -> RouteQ (Leaf a) s -> RouteQ (Leaf a) s' Source #

type RouteQ (Leaf a :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Router

type RouteQ (Leaf a :: Type) r = Sem r (QueryResult a)

data QA (a :: Type) Source #

Instances

Instances details
(QueryData a, HasQueryRouter sublayout r) => HasQueryRouter (QA a :> sublayout :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Router

Associated Types

type RouteQ (QA a :> sublayout) r Source #

Methods

routeQ :: Proxy (QA a :> sublayout) -> Proxy r -> Delayed (Sem r) env QueryRequest (RouteQ (QA a :> sublayout) (QueryEffs :& r)) -> Router env r QueryRequest Query Source #

hoistQueryRouter :: forall (s :: EffectRow) (s' :: EffectRow). Proxy (QA a :> sublayout) -> Proxy r -> (forall a0. Sem s a0 -> Sem s' a0) -> RouteQ (QA a :> sublayout) s -> RouteQ (QA a :> sublayout) s' Source #

type RouteQ (QA a :> sublayout :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Router

type RouteQ (QA a :> sublayout :: Type) r = QueryArgs a -> RouteQ sublayout r

data StoreLeaf a Source #

Instances

Instances details
(HasCodec a, Member (Tagged 'QueryAndMempool (ReadStore :: (Type -> Type) -> Type -> Type)) r) => HasQueryRouter (StoreLeaf (Var a) :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Store

Associated Types

type RouteQ (StoreLeaf (Var a)) r Source #

Methods

routeQ :: Proxy (StoreLeaf (Var a)) -> Proxy r -> Delayed (Sem r) env QueryRequest (RouteQ (StoreLeaf (Var a)) (QueryEffs :& r)) -> Router env r QueryRequest Query Source #

hoistQueryRouter :: forall (s :: EffectRow) (s' :: EffectRow). Proxy (StoreLeaf (Var a)) -> Proxy r -> (forall a0. Sem s a0 -> Sem s' a0) -> RouteQ (StoreLeaf (Var a)) s -> RouteQ (StoreLeaf (Var a)) s' Source #

(QueryData k, HasCodec v, Member (Tagged 'QueryAndMempool (ReadStore :: (Type -> Type) -> Type -> Type)) r) => HasQueryRouter (StoreLeaf (Map k v) :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Store

Associated Types

type RouteQ (StoreLeaf (Map k v)) r Source #

Methods

routeQ :: Proxy (StoreLeaf (Map k v)) -> Proxy r -> Delayed (Sem r) env QueryRequest (RouteQ (StoreLeaf (Map k v)) (QueryEffs :& r)) -> Router env r QueryRequest Query Source #

hoistQueryRouter :: forall (s :: EffectRow) (s' :: EffectRow). Proxy (StoreLeaf (Map k v)) -> Proxy r -> (forall a. Sem s a -> Sem s' a) -> RouteQ (StoreLeaf (Map k v)) s -> RouteQ (StoreLeaf (Map k v)) s' Source #

(HasCodec a, Member (Tagged 'QueryAndMempool (ReadStore :: (Type -> Type) -> Type -> Type)) r) => HasQueryRouter (StoreLeaf (Array a) :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Store

Associated Types

type RouteQ (StoreLeaf (Array a)) r Source #

Methods

routeQ :: Proxy (StoreLeaf (Array a)) -> Proxy r -> Delayed (Sem r) env QueryRequest (RouteQ (StoreLeaf (Array a)) (QueryEffs :& r)) -> Router env r QueryRequest Query Source #

hoistQueryRouter :: forall (s :: EffectRow) (s' :: EffectRow). Proxy (StoreLeaf (Array a)) -> Proxy r -> (forall a0. Sem s a0 -> Sem s' a0) -> RouteQ (StoreLeaf (Array a)) s -> RouteQ (StoreLeaf (Array a)) s' Source #

type RouteQ (StoreLeaf (Var a) :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Store

type RouteQ (StoreLeaf (Var a) :: Type) r = RouteQ (QA () :> Leaf a) r
type RouteQ (StoreLeaf (Map k v) :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Store

type RouteQ (StoreLeaf (Map k v) :: Type) r = RouteQ (QA k :> Leaf v) r
type RouteQ (StoreLeaf (Array a) :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Store

type RouteQ (StoreLeaf (Array a) :: Type) r = RouteQ (QA Word64 :> Leaf a) r

Errors

data AppError Source #

This type represents a common error response for the query, checkTx, | and deliver tx abci-messages.

Instances

Instances details
Eq AppError Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Errors

Show AppError Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Errors

Generic AppError Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Errors

Associated Types

type Rep AppError :: Type -> Type #

Methods

from :: AppError -> Rep AppError x #

to :: Rep AppError x -> AppError #

Exception AppError Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Errors

FromJSON AppError Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Errors

Methods

parseJSON :: Value -> Parser AppError

parseJSONList :: Value -> Parser [AppError]

ToJSON AppError Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Errors

Methods

toJSON :: AppError -> Value

toEncoding :: AppError -> Encoding

toJSONList :: [AppError] -> Value

toEncodingList :: [AppError] -> Encoding

type Rep AppError Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Errors

type Rep AppError = D1 ('MetaData "AppError" "Tendermint.SDK.BaseApp.Errors" "hs-abci-sdk-0.1.0.0-6BthCXrKFfHAhK2oYxZQI4" 'False) (C1 ('MetaCons "AppError" 'PrefixI 'True) (S1 ('MetaSel ('Just "appErrorCode") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: (S1 ('MetaSel ('Just "appErrorCodespace") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "appErrorMessage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))))

class IsAppError e where Source #

Allows for custom application error types to be coerced into the standard error resposne.

Methods

makeAppError :: e -> AppError Source #

Events

data Event #

Constructors

Event 

Fields

Instances

Instances details
Eq Event 
Instance details

Defined in Network.ABCI.Types.Messages.FieldTypes

Methods

(==) :: Event -> Event -> Bool #

(/=) :: Event -> Event -> Bool #

Show Event 
Instance details

Defined in Network.ABCI.Types.Messages.FieldTypes

Methods

showsPrec :: Int -> Event -> ShowS #

show :: Event -> String #

showList :: [Event] -> ShowS #

Generic Event 
Instance details

Defined in Network.ABCI.Types.Messages.FieldTypes

Associated Types

type Rep Event :: Type -> Type #

Methods

from :: Event -> Rep Event x #

to :: Rep Event x -> Event #

FromJSON Event 
Instance details

Defined in Network.ABCI.Types.Messages.FieldTypes

Methods

parseJSON :: Value -> Parser Event

parseJSONList :: Value -> Parser [Event]

ToJSON Event 
Instance details

Defined in Network.ABCI.Types.Messages.FieldTypes

Methods

toJSON :: Event -> Value

toEncoding :: Event -> Encoding

toJSONList :: [Event] -> Value

toEncodingList :: [Event] -> Encoding

Wrapped Event 
Instance details

Defined in Network.ABCI.Types.Messages.FieldTypes

Associated Types

type Unwrapped Event

Methods

_Wrapped' :: Iso' Event (Unwrapped Event)

type Rep Event 
Instance details

Defined in Network.ABCI.Types.Messages.FieldTypes

type Rep Event = D1 ('MetaData "Event" "Network.ABCI.Types.Messages.FieldTypes" "hs-abci-types-0.1.0.0-JbnZdER2jhDLQQCYdLDZz" 'False) (C1 ('MetaCons "Event" 'PrefixI 'True) (S1 ('MetaSel ('Just "eventType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "eventAttributes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [KVPair])))
type Unwrapped Event 
Instance details

Defined in Network.ABCI.Types.Messages.FieldTypes

type Unwrapped Event = Event

class ToEvent e where Source #

A class representing a type that can be emitted as an event in the | event logs for the deliverTx response.

Minimal complete definition

Nothing

Methods

toEvent :: e -> Event Source #

default toEvent :: (Generic e, GToEvent (Rep e)) => e -> Event Source #

Instances

Instances details
ToEvent TransferEvent Source # 
Instance details

Defined in Tendermint.SDK.Modules.Bank.Types

newtype ContextEvent t Source #

Special event wrapper to add contextual event_type info

Constructors

ContextEvent t 

Instances

Instances details
(ToJSON a, ToEvent a) => ToJSON (ContextEvent a) Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Events

Methods

toJSON :: ContextEvent a -> Value

toEncoding :: ContextEvent a -> Encoding

toJSONList :: [ContextEvent a] -> Value

toEncodingList :: [ContextEvent a] -> Encoding

Select a => Select (ContextEvent a) Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Events

emit :: ToEvent e => Member (Output Event) r => e -> Sem r () Source #

logEvent :: forall e r. (ToJSON e, ToEvent e, Select e) => Member Logger r => e -> Sem r () Source #

Gas

data GasMeter m a Source #

Instances

Instances details
type DefiningModule (GasMeter :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Gas

type DefiningModule (GasMeter :: (k -> Type) -> k -> Type) = "Tendermint.SDK.BaseApp.Gas"

withGas :: forall r a. MemberWithError GasMeter r => GasAmount -> Sem r a -> Sem r a Source #

Logger

data Logger m a Source #

Effect allowing for console logging.

Instances

Instances details
type DefiningModule Logger Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Logger

type DefiningModule Logger = "Tendermint.SDK.BaseApp.Logger"

log :: forall r. MemberWithError Logger r => Severity -> Text -> Sem r () Source #

data LogSelect Source #

Constructors

All 
Some [Text] 

addContext :: forall r x a. (MemberWithError Logger r, Select x, ToJSON x) => x -> Sem r a -> Sem r a Source #

data Severity Source #

Constructors

Debug 
Info 
Warning 
Error 
Exception 

Instances

Instances details
Eq Severity Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Logger

Ord Severity Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Logger

class Select a where Source #

Class for selecting object keys for contextual logging

Minimal complete definition

Nothing

Methods

select :: Verbosity -> a -> LogSelect Source #

default select :: Verbosity -> a -> LogSelect Source #

Instances

Instances details
Select TransferEvent Source # 
Instance details

Defined in Tendermint.SDK.Modules.Bank.Types

Select a => Select (ContextEvent a) Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Events

data Verbosity Source #

Constructors

V0 
V1 
V2 
V3 

Metrics

data Metrics m a Source #

Instances

Instances details
type DefiningModule Metrics Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Metrics

type DefiningModule Metrics = "Tendermint.SDK.BaseApp.Metrics"

incCount :: forall r. MemberWithError Metrics r => CountName -> Sem r () Source #

withTimer :: forall r a. MemberWithError Metrics r => HistogramName -> Sem r a -> Sem r a Source #

Transaction

type AnteHandler r = forall msg a. Endo (RoutingTx msg -> Sem r a) Source #

data RoutingTx msg where Source #

Constructors

RoutingTx :: Tx alg msg -> RoutingTx msg 

Instances

Instances details
Functor RoutingTx Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Types

Methods

fmap :: (a -> b) -> RoutingTx a -> RoutingTx b #

(<$) :: a -> RoutingTx b -> RoutingTx a #

HasPath (RoutingTx msg) Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Types

Methods

path :: Lens' (RoutingTx msg) Text Source #

type family RouteTx layout (s :: EffectRow) :: Type Source #

Instances

Instances details
type RouteTx EmptyTxServer r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Router

type RouteTx (a :<|> b :: Type) s Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Router

type RouteTx (a :<|> b :: Type) s = RouteTx a s :<|> RouteTx b s
type RouteTx (path :> sublayout :: Type) s Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Router

type RouteTx (path :> sublayout :: Type) s = RouteTx sublayout s
type RouteTx (TypedMessage msg :~> Return a :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Router

type RouteTx (TypedMessage msg :~> Return a :: Type) r = RoutingTx msg -> Sem r a

data Return a Source #

Instances

Instances details
(Member (Error AppError :: (Type -> Type) -> Type -> Type) r, ValidateMessage msg) => DefaultCheckTx (TypedMessage msg :~> Return a :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Checker

Associated Types

type DefaultCheckTxT (TypedMessage msg :~> Return a) r 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 # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Router

Associated Types

type RouteTx (TypedMessage msg :~> Return a) s Source #

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 #

type DefaultCheckTxT (TypedMessage msg :~> Return a :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Checker

type DefaultCheckTxT (TypedMessage msg :~> Return a :: Type) r = RoutingTx msg -> Sem r ()
type RouteTx (TypedMessage msg :~> Return a :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Router

type RouteTx (TypedMessage msg :~> Return a :: Type) r = RoutingTx msg -> Sem r a

data msg :~> a Source #

Instances

Instances details
(Member (Error AppError :: (Type -> Type) -> Type -> Type) r, ValidateMessage msg) => DefaultCheckTx (TypedMessage msg :~> Return a :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Checker

Associated Types

type DefaultCheckTxT (TypedMessage msg :~> Return a) r 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 # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Router

Associated Types

type RouteTx (TypedMessage msg :~> Return a) s Source #

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 #

type DefaultCheckTxT (TypedMessage msg :~> Return a :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Checker

type DefaultCheckTxT (TypedMessage msg :~> Return a :: Type) r = RoutingTx msg -> Sem r ()
type RouteTx (TypedMessage msg :~> Return a :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Router

type RouteTx (TypedMessage msg :~> Return a :: Type) r = RoutingTx msg -> Sem r a

data TypedMessage msg Source #

Instances

Instances details
(Member (Error AppError :: (Type -> Type) -> Type -> Type) r, ValidateMessage msg) => DefaultCheckTx (TypedMessage msg :~> Return a :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Checker

Associated Types

type DefaultCheckTxT (TypedMessage msg :~> Return a) r 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 # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Router

Associated Types

type RouteTx (TypedMessage msg :~> Return a) s Source #

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 #

type DefaultCheckTxT (TypedMessage msg :~> Return a :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Checker

type DefaultCheckTxT (TypedMessage msg :~> Return a :: Type) r = RoutingTx msg -> Sem r ()
type RouteTx (TypedMessage msg :~> Return a :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Router

type RouteTx (TypedMessage msg :~> Return a :: Type) r = RoutingTx msg -> Sem r a

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

Instances details
DefaultCheckTx EmptyTxServer r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Checker

Associated Types

type DefaultCheckTxT EmptyTxServer r Source #

(DefaultCheckTx a r, DefaultCheckTx b r) => DefaultCheckTx (a :<|> b :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Checker

Associated Types

type DefaultCheckTxT (a :<|> b) r Source #

Methods

defaultCheckTx :: Proxy (a :<|> b) -> Proxy r -> DefaultCheckTxT (a :<|> b) r Source #

DefaultCheckTx rest r => DefaultCheckTx (path :> rest :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Checker

Associated Types

type DefaultCheckTxT (path :> rest) r Source #

Methods

defaultCheckTx :: Proxy (path :> rest) -> Proxy r -> DefaultCheckTxT (path :> rest) r Source #

(Member (Error AppError :: (Type -> Type) -> Type -> Type) r, ValidateMessage msg) => DefaultCheckTx (TypedMessage msg :~> Return a :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Transaction.Checker

Associated Types

type DefaultCheckTxT (TypedMessage msg :~> Return a) r Source #

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 () 

Query

class QueryData a where Source #

This class is used to parse the 'data' field of the query request message. | The default method assumes that the 'data' is simply the key for the | value being queried.

Minimal complete definition

Nothing

type family RouteQ layout r :: Type Source #

A routeQ handler.

Instances

Instances details
type RouteQ EmptyQueryServer r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Router

type RouteQ (Leaf a :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Router

type RouteQ (Leaf a :: Type) r = Sem r (QueryResult a)
type RouteQ (a :<|> b :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Router

type RouteQ (a :<|> b :: Type) r = RouteQ a r :<|> RouteQ b r
type RouteQ (StoreLeaf (Var a) :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Store

type RouteQ (StoreLeaf (Var a) :: Type) r = RouteQ (QA () :> Leaf a) r
type RouteQ (StoreLeaf (Map k v) :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Store

type RouteQ (StoreLeaf (Map k v) :: Type) r = RouteQ (QA k :> Leaf v) r
type RouteQ (StoreLeaf (Array a) :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Store

type RouteQ (StoreLeaf (Array a) :: Type) r = RouteQ (QA Word64 :> Leaf a) r
type RouteQ (QA a :> sublayout :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Router

type RouteQ (QA a :> sublayout :: Type) r = QueryArgs a -> RouteQ sublayout r
type RouteQ (Capture' mods capture a :> sublayout :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Router

type RouteQ (Capture' mods capture a :> sublayout :: Type) r = a -> RouteQ sublayout r
type RouteQ (QueryParam' mods sym a :> sublayout :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Router

type RouteQ (QueryParam' mods sym a :> sublayout :: Type) r = RequestArgument mods a -> RouteQ sublayout r
type RouteQ (path :> sublayout :: Type) r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Router

type RouteQ (path :> sublayout :: Type) r = RouteQ sublayout r

data QueryResult a Source #

Instances

Instances details
Functor QueryResult Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Types

Methods

fmap :: (a -> b) -> QueryResult a -> QueryResult b #

(<$) :: a -> QueryResult b -> QueryResult a #

Eq a => Eq (QueryResult a) Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Types

Show a => Show (QueryResult a) Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Types

storeQueryHandler :: StoreQueryHandler ns h => ns -> h Source #

data EmptyQueryServer Source #

Constructors

EmptyQueryServer 

Instances

Instances details
HasQueryRouter EmptyQueryServer r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Router

Associated Types

type RouteQ EmptyQueryServer r Source #

Methods

routeQ :: Proxy EmptyQueryServer -> Proxy r -> Delayed (Sem r) env QueryRequest (RouteQ EmptyQueryServer (QueryEffs :& r)) -> Router env r QueryRequest Query Source #

hoistQueryRouter :: forall (s :: EffectRow) (s' :: EffectRow). Proxy EmptyQueryServer -> Proxy r -> (forall a. Sem s a -> Sem s' a) -> RouteQ EmptyQueryServer s -> RouteQ EmptyQueryServer s' Source #

type RouteQ EmptyQueryServer r Source # 
Instance details

Defined in Tendermint.SDK.BaseApp.Query.Router

Block