utxorpc-server 0.0.1.1 → 0.0.2.0
raw patch · 7 files changed
+95/−102 lines, 7 filesdep ~utxorpc
Dependency ranges changed: utxorpc
Files
- example/BuildImpl.hs +0/−49
- example/Main.hs +6/−6
- example/QueryImpl.hs +42/−0
- src/Utxorpc/Build.hs +0/−34
- src/Utxorpc/Query.hs +32/−0
- src/Utxorpc/Server.hs +6/−6
- utxorpc-server.cabal +9/−7
− example/BuildImpl.hs
@@ -1,49 +0,0 @@-module BuildImpl (handlerImpls) where--import Control.Monad.IO.Class (MonadIO)-import EmptyHandlers (emptySStreamHandler, emptyUnaryHandler)-import Network.GRPC.Server (ServerStreamHandler, UnaryHandler)-import Proto.Utxorpc.V1alpha.Build.Build-import Utxorpc.Server (BuildHandlers (..))--handlerImpls ::- (MonadIO m) =>- (String -> m ()) ->- BuildHandlers m Int-handlerImpls logF =- BuildHandlers- (chainTipHandler logF)- (chainParamHandler logF)- (utxoByAddressHandler logF)- (utxoByRefHandler logF)- (holdUtxoHandler logF)--chainTipHandler ::- (MonadIO m) =>- (String -> m ()) ->- UnaryHandler m GetChainTipRequest GetChainTipResponse-chainTipHandler = emptyUnaryHandler--chainParamHandler ::- (MonadIO m) =>- (String -> m ()) ->- UnaryHandler m GetChainParamRequest GetChainParamResponse-chainParamHandler = emptyUnaryHandler--utxoByAddressHandler ::- (MonadIO m) =>- (String -> m ()) ->- UnaryHandler m GetUtxoByAddressRequest GetUtxoByAddressResponse-utxoByAddressHandler = emptyUnaryHandler--utxoByRefHandler ::- (MonadIO m) =>- (String -> m ()) ->- UnaryHandler m GetUtxoByRefRequest GetUtxoByRefResponse-utxoByRefHandler = emptyUnaryHandler--holdUtxoHandler ::- (MonadIO m) =>- (String -> m ()) ->- ServerStreamHandler m HoldUtxoRequest HoldUtxoResponse Int-holdUtxoHandler = emptySStreamHandler
example/Main.hs view
@@ -6,7 +6,7 @@ module Main (main) where -import qualified BuildImpl+import qualified QueryImpl import Data.List (find, isPrefixOf) import Katip (Severity (..), closeScribes, logTM, ls) import KatipLogger (katipLogger, mkLogEnv, unliftKatip)@@ -28,7 +28,7 @@ putStrLn $ "Starting server on port " ++ show port if "--katip" `elem` args then runKatipExample defaultTlsSettings (setPort port defaultSettings) [gzip]- else runSimpleExample+ else runSimpleExample port runKatipExample :: TLSSettings -> Settings -> [Compression] -> IO () runKatipExample tlsSettings warpSettings compression =@@ -46,12 +46,12 @@ katipLogF str = $(logTM) InfoS (ls str) -runSimpleExample :: IO ()-runSimpleExample = do+runSimpleExample :: Int -> IO ()+runSimpleExample port = do runUtxorpc $ ServiceConfig defaultTlsSettings- defaultSettings+ (setPort port defaultSettings) (handlersImpl putStrLn) (Just simpleLogger) id@@ -60,7 +60,7 @@ handlersImpl :: (MonadIO m) => (String -> m ()) -> UtxorpcHandlers m Int Int Int Int Int handlersImpl logF = UtxorpcHandlers- (BuildImpl.handlerImpls logF)+ (QueryImpl.handlerImpls logF) (SubmitImpl.handlerImpls logF) (SyncImpl.handlerImpls logF) (WatchImpl.handlerImpls logF)
+ example/QueryImpl.hs view
@@ -0,0 +1,42 @@+module QueryImpl (handlerImpls) where++import Control.Monad.IO.Class (MonadIO)+import EmptyHandlers (emptySStreamHandler, emptyUnaryHandler)+import Network.GRPC.Server (ServerStreamHandler, UnaryHandler)+import Proto.Utxorpc.V1alpha.Query.Query+import Utxorpc.Server (QueryHandlers (..))++handlerImpls ::+ (MonadIO m) =>+ (String -> m ()) ->+ QueryHandlers m Int+handlerImpls logF =+ QueryHandlers+ (readParamsHandler logF)+ (readUtxosHandler logF)+ (searchUtxosHandler logF)+ (streamUtxosHandler logF)++readParamsHandler ::+ (MonadIO m) =>+ (String -> m ()) ->+ UnaryHandler m ReadParamsRequest ReadParamsResponse+readParamsHandler = emptyUnaryHandler++readUtxosHandler ::+ (MonadIO m) =>+ (String -> m ()) ->+ UnaryHandler m ReadUtxosRequest ReadUtxosResponse+readUtxosHandler = emptyUnaryHandler++searchUtxosHandler ::+ (MonadIO m) =>+ (String -> m ()) ->+ UnaryHandler m SearchUtxosRequest SearchUtxosResponse+searchUtxosHandler = emptyUnaryHandler++streamUtxosHandler ::+ (MonadIO m) =>+ (String -> m ()) ->+ ServerStreamHandler m ReadUtxosRequest ReadUtxosResponse Int+streamUtxosHandler = emptySStreamHandler
− src/Utxorpc/Build.hs
@@ -1,34 +0,0 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE NamedFieldPuns #-}-{-# LANGUAGE RankNTypes #-}--module Utxorpc.Build (BuildHandlers (..), serviceHandlers) where--import Control.Monad.IO.Class (MonadIO)-import Network.GRPC.HTTP2.ProtoLens (RPC (RPC))-import Network.GRPC.Server (ServerStreamHandler, ServiceHandler, UnaryHandler)-import Proto.Utxorpc.V1alpha.Build.Build-import Utxorpc.Logged (UtxorpcServiceLogger, loggedSStream, loggedUnary)--data BuildHandlers m a = BuildHandlers- { getChainTip :: UnaryHandler m GetChainTipRequest GetChainTipResponse,- getChainParam :: UnaryHandler m GetChainParamRequest GetChainParamResponse,- getUtxoByAddress :: UnaryHandler m GetUtxoByAddressRequest GetUtxoByAddressResponse,- getUtxoByRef :: UnaryHandler m GetUtxoByRefRequest GetUtxoByRefResponse,- holdUtxo :: ServerStreamHandler m HoldUtxoRequest HoldUtxoResponse a- }--serviceHandlers ::- (MonadIO m) =>- Maybe (UtxorpcServiceLogger m) ->- (forall x. m x -> IO x) ->- BuildHandlers m b ->- [ServiceHandler]-serviceHandlers logger f BuildHandlers {getChainTip, getChainParam, getUtxoByAddress, getUtxoByRef, holdUtxo} =- [chainTipSH, chainParamSH, byAddressSH, byRefSH, holdSH]- where- chainTipSH = loggedUnary f (RPC :: RPC LedgerStateService "getChainTip") getChainTip logger- chainParamSH = loggedUnary f (RPC :: RPC LedgerStateService "getChainParam") getChainParam logger- byAddressSH = loggedUnary f (RPC :: RPC LedgerStateService "getUtxoByAddress") getUtxoByAddress logger- byRefSH = loggedUnary f (RPC :: RPC LedgerStateService "getUtxoByRef") getUtxoByRef logger- holdSH = loggedSStream f (RPC :: RPC LedgerStateService "holdUtxo") holdUtxo logger
+ src/Utxorpc/Query.hs view
@@ -0,0 +1,32 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE RankNTypes #-}++module Utxorpc.Query (QueryHandlers (..), serviceHandlers) where++import Control.Monad.IO.Class (MonadIO)+import Network.GRPC.HTTP2.ProtoLens (RPC (RPC))+import Network.GRPC.Server (ServerStreamHandler, ServiceHandler, UnaryHandler)+import Proto.Utxorpc.V1alpha.Query.Query+import Utxorpc.Logged (UtxorpcServiceLogger, loggedSStream, loggedUnary)++data QueryHandlers m a = QueryHandlers+ { readParams :: UnaryHandler m ReadParamsRequest ReadParamsResponse,+ readUtxos :: UnaryHandler m ReadUtxosRequest ReadUtxosResponse,+ searchUtxos :: UnaryHandler m SearchUtxosRequest SearchUtxosResponse,+ streamUtxos :: ServerStreamHandler m ReadUtxosRequest ReadUtxosResponse a+ }++serviceHandlers ::+ (MonadIO m) =>+ Maybe (UtxorpcServiceLogger m) ->+ (forall x. m x -> IO x) ->+ QueryHandlers m b ->+ [ServiceHandler]+serviceHandlers logger f QueryHandlers {readParams, readUtxos, searchUtxos, streamUtxos } =+ [readParamsSH, readUtxosSH, searchUtxosSH, streamUtxosSH ]+ where+ readParamsSH = loggedUnary f (RPC :: RPC QueryService "readParams") readParams logger+ readUtxosSH = loggedUnary f (RPC :: RPC QueryService "readUtxos") readUtxos logger+ searchUtxosSH = loggedUnary f (RPC :: RPC QueryService "searchUtxos") searchUtxos logger+ streamUtxosSH = loggedSStream f (RPC :: RPC QueryService "streamUtxos") streamUtxos logger
src/Utxorpc/Server.hs view
@@ -20,7 +20,7 @@ runUtxorpc, ServiceConfig (..), UtxorpcHandlers (..),- BuildHandlers (..),+ QueryHandlers (..), SubmitHandlers (..), SyncHandlers (..), WatchHandlers (..),@@ -39,7 +39,7 @@ import Network.GRPC.Server import Network.Wai.Handler.Warp (Settings) import Network.Wai.Handler.WarpTLS (TLSSettings)-import Utxorpc.Build as Build (BuildHandlers (..), serviceHandlers)+import Utxorpc.Query as Query (QueryHandlers (..), serviceHandlers) import Utxorpc.Logged (ReplyLogger, RequestLogger, ServerStreamEndLogger, ServerStreamLogger, UtxorpcServiceLogger (..)) import Utxorpc.Submit as Submit (SubmitHandlers (..), serviceHandlers) import Utxorpc.Sync as Sync (SyncHandlers (..), serviceHandlers)@@ -99,8 +99,8 @@ d -- Stream state of `followTip` e -- Stream state of `watchTx` = UtxorpcHandlers- { -- | Handlers for the Build module.- buildHandlers :: BuildHandlers m a,+ { -- | Handlers for the Query module.+ queryHandlers :: QueryHandlers m a, -- | Handlers for the Submit module. submitHandlers :: SubmitHandlers m b c, -- | Handlers for the Sync module.@@ -118,8 +118,8 @@ serviceHandlers logger unlift- UtxorpcHandlers {buildHandlers, submitHandlers, syncHandlers, watchHandlers} =- Build.serviceHandlers logger unlift buildHandlers+ UtxorpcHandlers {queryHandlers, submitHandlers, syncHandlers, watchHandlers} =+ Query.serviceHandlers logger unlift queryHandlers <> Submit.serviceHandlers logger unlift submitHandlers <> Sync.serviceHandlers logger unlift syncHandlers <> Watch.serviceHandlers logger unlift watchHandlers
utxorpc-server.cabal view
@@ -1,11 +1,13 @@ cabal-version: 3.0 name: utxorpc-server-version: 0.0.1.1+version: 0.0.2.0 synopsis: An SDK for UTxO RPC services. description: An SDK to reduce boilerplate, improve ease-of-use, and support logging for `utxorpc`. To get started, see the documentation for `Utxorpc.Server` below.+ Consult the README for help with dependency configurations.+ WARNING: This package is currently pre-release. Any version < 0.1.0.0 is subject to breaking changes without change in major version. category: Network, Blockchain, Cardano@@ -26,7 +28,7 @@ exposed-modules: Utxorpc.Server other-modules:- Utxorpc.Build+ Utxorpc.Query Utxorpc.Submit Utxorpc.Sync Utxorpc.Watch@@ -49,7 +51,7 @@ , bytestring < 0.13 , http2-grpc-proto-lens < 0.2 , http2-grpc-types >= 0.5.0.0 && < 0.6- , utxorpc >= 0.0.3.0 && < 0.1+ , utxorpc >= 0.0.5 && < 0.0.6 , uuid < 1.4 , wai < 3.3 , warp < 3.5@@ -61,9 +63,9 @@ main-is: Main.hs other-modules:- BuildImpl- KatipLogger EmptyHandlers+ KatipLogger+ QueryImpl SimpleLogger SubmitImpl SyncImpl@@ -93,7 +95,7 @@ , time < 1.13 , transformers < 0.7 , unliftio < 0.3- , utxorpc >= 0.0.3 && < 0.1+ , utxorpc >= 0.0.4 , utxorpc-server , uuid < 1.4 , wai < 3.3@@ -132,7 +134,7 @@ , hspec >= 2.11.7 && < 2.12 , proto-lens < 0.8 , transformers < 0.7- , utxorpc >= 0.0.3 && < 0.1+ , utxorpc >= 0.0.4 , uuid < 1.4 , wai < 3.3 , warp-grpc < 0.5