packages feed

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
@@ -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