diff --git a/.gitignore b/.gitignore index 1405be03..41848102 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .stack-work/ +stack.yaml.lock *.cabal *~ .ci-bins/ diff --git a/.travis.yml b/.travis.yml index 4d4fd1d0..7d1cb600 100644 --- a/.travis.yml +++ b/.travis.yml @@ -41,7 +41,7 @@ jobs: if: branch = master script: - echo "test formatting" - - travis_wait 120 stack --skip-ghc-check install hlint-2.1.26 stylish-haskell-0.9.4.3 weeder-1.0.8 + - travis_wait 120 stack --skip-ghc-check install hlint-2.2.11 stylish-haskell-0.10.0.0 weeder-1.0.8 - make stylish && git diff-index --quiet HEAD - make hlint - make weeder diff --git a/.weeder.yaml b/.weeder.yaml index 9a8491a9..9e589821 100644 --- a/.weeder.yaml +++ b/.weeder.yaml @@ -15,25 +15,28 @@ - module: - Proto.Types - Proto.Types_Fields - - Proto.Vendored.Google.Protobuf.Timestamp - - Proto.Vendored.Google.Protobuf.Timestamp_Fields - - Proto.Vendored.Tendermint.Tendermint.Crypto.Merkle.Merkle - - Proto.Vendored.Tendermint.Tendermint.Crypto.Merkle.Merkle_Fields - - Proto.Vendored.Tendermint.Tendermint.Libs.Common.Types - - Proto.Vendored.Tendermint.Tendermint.Libs.Common.Types_Fields + - Proto.Google.Protobuf.Timestamp + - Proto.Google.Protobuf.Timestamp_Fields + - Proto.Tendermint.Tendermint.Crypto.Merkle.Merkle + - Proto.Tendermint.Tendermint.Crypto.Merkle.Merkle_Fields + - Proto.Tendermint.Tendermint.Libs.Common.Types + - Proto.Tendermint.Tendermint.Libs.Common.Types_Fields - message: - name: Module not compiled - module: - Proto.Types - Proto.Types_Fields - - Proto.Vendored.Gogo.Protobuf.Gogoproto.Gogo - - Proto.Vendored.Gogo.Protobuf.Gogoproto.Gogo_Fields - - Proto.Vendored.Google.Protobuf.Timestamp - - Proto.Vendored.Google.Protobuf.Timestamp_Fields - - Proto.Vendored.Tendermint.Tendermint.Crypto.Merkle.Merkle - - Proto.Vendored.Tendermint.Tendermint.Crypto.Merkle.Merkle_Fields - - Proto.Vendored.Tendermint.Tendermint.Libs.Common.Types - - Proto.Vendored.Tendermint.Tendermint.Libs.Common.Types_Fields + - Proto.Gogo.Protobuf.Gogoproto.Gogo + - Proto.Gogo.Protobuf.Gogoproto.Gogo_Fields + - Proto.Google.Protobuf.Timestamp + - Proto.Google.Protobuf.Timestamp_Fields + - Proto.Tendermint.Tendermint.Crypto.Merkle.Merkle + - Proto.Tendermint.Tendermint.Crypto.Merkle.Merkle_Fields + - Proto.Tendermint.Tendermint.Libs.Common.Types + - Proto.Tendermint.Tendermint.Libs.Common.Types_Fields + - Proto.Google.Protobuf.Descriptor + - Proto.Google.Protobuf.Descriptor_Fields + - message: - name: Redundant build-depends entry - depends: proto-lens-runtime @@ -61,10 +64,15 @@ - name: Module not compiled - module: - Proto.Google.Api.Annotations + - Proto.Google.Api.Annotations_Fields - Proto.Google.Api.Http + - Proto.Google.Api.Http_Fields - Proto.Google.Protobuf.Empty + - Proto.Google.Protobuf.Empty_Fields - Proto.Iavl.Api - Proto.Iavl.Api_Fields + - Proto.Google.Protobuf.Descriptor + - Proto.Google.Protobuf.Descriptor_Fields - message: - name: Redundant build-depends entry - depends: proto-lens-runtime diff --git a/Makefile b/Makefile index 7d2b3d15..0b4055c6 100644 --- a/Makefile +++ b/Makefile @@ -44,6 +44,7 @@ stylish: ## Run stylish-haskell over all haskell projects ./hs-abci-test-utils \ ./hs-abci-server \ ./hs-iavl-client \ + -not -path "*/.stack-work/*" \ -name "*.hs" | xargs stack exec stylish-haskell -- -c ./.stylish_haskell.yaml -i ################### diff --git a/hs-abci-docs/nameservice/interact/Main.hs b/hs-abci-docs/nameservice/interact/Main.hs index c0cb01e1..825b2600 100644 --- a/hs-abci-docs/nameservice/interact/Main.hs +++ b/hs-abci-docs/nameservice/interact/Main.hs @@ -2,10 +2,8 @@ module Main where import Control.Concurrent.Async (forConcurrently_) import Control.Monad (forever, replicateM) -import Data.Maybe (maybe) import Interact import System.Environment (lookupEnv) -import Text.Read (read) main :: IO () main = do diff --git a/hs-abci-docs/nameservice/package.yaml b/hs-abci-docs/nameservice/package.yaml index a21d2f0a..5ef40654 100644 --- a/hs-abci-docs/nameservice/package.yaml +++ b/hs-abci-docs/nameservice/package.yaml @@ -43,16 +43,13 @@ library: - aeson - aeson-casing - base >= 4.7 && < 5 - - bloodhound - bytestring - errors - hs-abci-extra - hs-abci-server - hs-abci-sdk - hs-abci-types - - http-client - katip - - katip-elasticsearch - lens - polysemy - polysemy-plugin diff --git a/hs-abci-docs/nameservice/src/Nameservice/Config.hs b/hs-abci-docs/nameservice/src/Nameservice/Config.hs index 437c1cfe..35344e34 100644 --- a/hs-abci-docs/nameservice/src/Nameservice/Config.hs +++ b/hs-abci-docs/nameservice/src/Nameservice/Config.hs @@ -15,10 +15,7 @@ import Control.Lens (makeLenses, (&), import Data.IORef (IORef, newIORef) import Data.Maybe (fromMaybe) import Data.String.Conversions (cs) -import qualified Database.V5.Bloodhound as BH import qualified Katip as K -import qualified Katip.Scribes.ElasticSearch as ES -import qualified Network.HTTP.Client as Client import System.Environment import System.IO (stdout) import qualified Tendermint.SDK.BaseApp as BaseApp @@ -26,7 +23,6 @@ import Tendermint.SDK.BaseApp.Logger.Katip as KL import qualified Tendermint.SDK.BaseApp.Metrics.Prometheus as P import Tendermint.SDK.BaseApp.Store.IAVLStore (GrpcConfig (..), initIAVLVersions) -import Text.Read (read) data AppConfig = AppConfig @@ -87,12 +83,14 @@ makeLogLevel = do | otherwise = Nothing -data KatipConfig = ES {host :: String, port :: String} | Console +data KatipConfig = + ES String String -- host, port + | Console makeLoggingConfig :: IO KatipConfig makeLoggingConfig = do mEsConfig <- runMaybeT $ - ES <$> (MaybeT $ lookupEnv "ES_HOST") <*> (MaybeT $ lookupEnv "ES_PORT") + ES <$> MaybeT (lookupEnv "ES_HOST") <*> MaybeT (lookupEnv "ES_PORT") pure $ fromMaybe Console mEsConfig -- makes a log environment for console logs / ES logs @@ -105,10 +103,4 @@ makeKatipScribe kcfg LogLevel{..} le = case kcfg of Console -> do handleScribe <- K.mkHandleScribe K.ColorIfTerminal stdout (K.permitItem severity) verbosity K.registerScribe "stdout" handleScribe K.defaultScribeSettings le - ES {host, port} -> do - mgr <- Client.newManager Client.defaultManagerSettings - let serverAddress = "http://" <> host <> ":" <> port - bloodhoundEnv = BH.mkBHEnv (BH.Server $ cs serverAddress) mgr - esScribe <- ES.mkEsScribe ES.defaultEsScribeCfgV5 bloodhoundEnv (BH.IndexName "nameservice") - (BH.MappingName "application-logs") (K.permitItem severity) verbosity - K.registerScribe "es" esScribe K.defaultScribeSettings le + ES _ _ -> error "ES Logging is not available due to dependency issues with Bloodhound ES client" diff --git a/hs-abci-docs/simple-storage/src/SimpleStorage/Modules/SimpleStorage/Message.hs b/hs-abci-docs/simple-storage/src/SimpleStorage/Modules/SimpleStorage/Message.hs index fe54cc93..7aabb3b8 100644 --- a/hs-abci-docs/simple-storage/src/SimpleStorage/Modules/SimpleStorage/Message.hs +++ b/hs-abci-docs/simple-storage/src/SimpleStorage/Modules/SimpleStorage/Message.hs @@ -3,7 +3,7 @@ module SimpleStorage.Modules.SimpleStorage.Message )where import Control.Lens (from, iso, view, (&), - (.~), (^.), _Wrapped') + (.~), (^.)) import Control.Lens.Wrapped (Wrapped (..)) import Data.Bifunctor (bimap) import Data.Int (Int32) diff --git a/hs-abci-sdk/package.yaml b/hs-abci-sdk/package.yaml index adc05daa..e20ec44a 100644 --- a/hs-abci-sdk/package.yaml +++ b/hs-abci-sdk/package.yaml @@ -70,7 +70,6 @@ library: - mtl - polysemy - polysemy-plugin - - polysemy-zoo - prometheus - proto-lens - proto-lens-runtime @@ -194,7 +193,6 @@ tests: - memory - polysemy - polysemy-plugin - - polysemy-zoo - prometheus - secp256k1-haskell - servant diff --git a/hs-abci-sdk/src/Tendermint/SDK/Application/Module.hs b/hs-abci-sdk/src/Tendermint/SDK/Application/Module.hs index c9373180..09d4ad66 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/Application/Module.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/Application/Module.hs @@ -35,7 +35,7 @@ type family DependencyEffs (ms :: [Component]) :: EffectRow where DependencyEffs (Module _ _ _ _ es deps ': rest) = es :& DependencyEffs rest DependencyEffs _ = TypeError ('Text "DependencyEffs is a partial function defined only on partially applied Modules") -data Module (name :: Symbol) (check :: *) (deliver :: *) (query :: *) (es :: EffectRow) (deps :: [Component]) (r :: EffectRow) = Module +data Module (name :: Symbol) (check :: Type) (deliver :: Type) (query :: Type) (es :: EffectRow) (deps :: [Component]) (r :: EffectRow) = Module { moduleTxChecker :: T.RouteTx check r , moduleTxDeliverer :: T.RouteTx deliver r , moduleQuerier :: Q.RouteQ query r @@ -61,9 +61,9 @@ data Application check deliver query r s = Application } class ToApplication ms r where - type ApplicationC ms :: * - type ApplicationD ms :: * - type ApplicationQ ms :: * + type ApplicationC ms :: Type + type ApplicationD ms :: Type + type ApplicationQ ms :: Type toApplication :: ModuleList ms r -> Application (ApplicationC ms) (ApplicationD ms) (ApplicationQ ms) r r diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Query/Router.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Query/Router.hs index 2d01948a..62154a88 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Query/Router.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Query/Router.hs @@ -5,6 +5,7 @@ module Tendermint.SDK.BaseApp.Query.Router ) where import Control.Monad (join) +import Data.Kind (Type) import Data.Proxy import Data.String.Conversions (cs) import Data.Text (Text) @@ -29,9 +30,7 @@ import qualified Tendermint.SDK.BaseApp.Router as R import Tendermint.SDK.BaseApp.Store (ReadStore, Scope (..)) import Tendermint.SDK.Codec (HasCodec (..)) import Tendermint.SDK.Types.Effects ((:&)) -import Web.HttpApiData (FromHttpApiData (..), - parseUrlPieceMaybe) - +import Web.HttpApiData (parseUrlPieceMaybe) -------------------------------------------------------------------------------- @@ -40,7 +39,7 @@ import Web.HttpApiData (FromHttpApiData (..), -- | Servant combinators are recognized. class HasQueryRouter layout r where -- | A routeQ handler. - type RouteQ layout r :: * + type RouteQ layout r :: Type -- | Transform a routeQ handler into a 'Router'. routeQ :: Proxy layout diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Query/Types.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Query/Types.hs index 9eb9ec9a..d02d4001 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Query/Types.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Query/Types.hs @@ -20,6 +20,7 @@ import Control.Lens (from, lens, to, (^.)) import Data.ByteArray.Base64String (Base64String, fromBytes, toBytes) import Data.Int (Int64) +import Data.Kind (Type) import Data.Text (Text, breakOn, uncons) import Data.Word (Word64) import Network.ABCI.Types.Messages.FieldTypes (Proof, WrappedVal (..)) @@ -29,9 +30,9 @@ import Tendermint.SDK.BaseApp.Router.Types (HasPath (..)) import Tendermint.SDK.BaseApp.Store (RawKey (..)) import Tendermint.SDK.Types.Address (Address) -data Leaf (a :: *) +data Leaf (a :: Type) -data QA (a :: *) +data QA (a :: Type) -------------------------------------------------------------------------------- diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/Array.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/Array.hs index 830e82b1..9f7bb83e 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/Array.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/Array.hs @@ -15,6 +15,7 @@ module Tendermint.SDK.BaseApp.Store.Array import Control.Lens (iso, (^.)) import qualified Data.ByteArray.HexString as Hex import qualified Data.ByteString as BS +import Data.Kind (Type) import Data.Maybe (fromMaybe) import Data.String.Conversions (cs) import Data.Word (Word64) @@ -34,7 +35,7 @@ import Tendermint.SDK.Codec (HasCodec (..)) -- | A 'Array a' is an appendable list whose elements can be accessed -- | by their index. You can also delete from the list, in which case accessing -- | that index will result in a `Nothing`. -data Array (a :: *) = Array +data Array (a :: Type) = Array { arrayStore :: S.Store (Array a) } -- | Represents an index into a list diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/List.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/List.hs index 7b3e9770..d7dd61ae 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/List.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/List.hs @@ -18,6 +18,7 @@ import Control.Lens (from, iso, to, view, (^.)) import Control.Monad (when) import qualified Data.ByteArray.HexString as Hex +import Data.Kind (Type) import Data.String.Conversions (cs) import Data.Word (Word64) import Polysemy (Members, Sem) @@ -31,7 +32,7 @@ import qualified Tendermint.SDK.BaseApp.Store.Map as M import qualified Tendermint.SDK.BaseApp.Store.RawStore as S import Tendermint.SDK.Codec (HasCodec (..)) -data List (a :: *) = List +data List (a :: Type) = List { listStore :: S.Store (List a) } diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/Map.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/Map.hs index 05cb26ae..40af1e0d 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/Map.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/Map.hs @@ -11,6 +11,7 @@ module Tendermint.SDK.BaseApp.Store.Map ) where import Control.Lens ((^.)) +import Data.Kind (Type) import Polysemy (Member, Members, Sem) import Polysemy.Error (Error) import Prelude hiding (lookup) @@ -18,7 +19,7 @@ import Tendermint.SDK.BaseApp.Errors (AppError) import qualified Tendermint.SDK.BaseApp.Store.RawStore as S import Tendermint.SDK.Codec (HasCodec (..)) -data Map (k :: *) (v :: *) = Map +data Map (k :: Type) (v :: Type) = Map { mapStore :: S.Store (Map k v) } diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/MemoryStore.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/MemoryStore.hs index c41bb446..345f3f54 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/MemoryStore.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/MemoryStore.hs @@ -122,9 +122,7 @@ evalCommitBlock db DBVersions{..} = do (\case CommitBlock -> liftIO $ do mv <- getVersion db - writeIORef committed $ case mv of - Nothing -> Genesis - Just v -> Version v + writeIORef committed $ maybe Genesis Version mv root <- getRootHash db pure . Base64.fromBytes $ root ) diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/RawStore.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/RawStore.hs index 83b302d6..40ba8017 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/RawStore.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/RawStore.hs @@ -40,6 +40,7 @@ module Tendermint.SDK.BaseApp.Store.RawStore import Control.Lens (Iso', iso, (^.)) import Data.ByteArray.Base64String (Base64String) import qualified Data.ByteString as BS +import Data.Kind (Type) import Data.Proxy import Data.String.Conversions (cs) import Data.Text @@ -75,7 +76,7 @@ instance RawKey () where rawKey = iso (const "") (const ()) class RawKey k => IsKey k ns where - type Value k ns :: * + type Value k ns :: Type prefix :: Proxy k -> Proxy ns -> BS.ByteString default prefix :: Proxy k -> Proxy ns -> BS.ByteString diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/TH.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/TH.hs index 86a410f4..f0a69db8 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/TH.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/TH.hs @@ -101,7 +101,7 @@ mkIsKeyInstance -> Q Dec mkIsKeyInstance namespaceName keyTypeName t = instanceD (pure []) (conT ''IsKey `appT` conT keyTypeName `appT` conT namespaceName) - [tySynInstD ''Value $ tySynEqn [conT keyTypeName, conT namespaceName] t] + [tySynInstD $ tySynEqn Nothing (conT ''Value `appT` conT keyTypeName `appT` conT namespaceName) t] diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/Var.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/Var.hs index 30978d8e..79571f42 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/Var.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Store/Var.hs @@ -9,6 +9,7 @@ module Tendermint.SDK.BaseApp.Store.Var ) where import Control.Lens ((^.)) +import Data.Kind (Type) import Polysemy (Member, Members, Sem) import Polysemy.Error (Error) import Tendermint.SDK.BaseApp.Errors (AppError, @@ -17,7 +18,7 @@ import Tendermint.SDK.BaseApp.Errors (AppError, import qualified Tendermint.SDK.BaseApp.Store.RawStore as S import Tendermint.SDK.Codec (HasCodec (..)) -data Var (a :: *) = Var +data Var (a :: Type) = Var { varStore :: S.Store (Var a) } instance S.IsKey () (Var a) where diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Transaction/Checker.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Transaction/Checker.hs index bc801d12..a17a091f 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Transaction/Checker.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Transaction/Checker.hs @@ -3,6 +3,7 @@ module Tendermint.SDK.BaseApp.Transaction.Checker , VoidReturn ) where +import Data.Kind (Type) import Data.Proxy import qualified Data.Validation as V import Polysemy (EffectRow, Member, @@ -26,13 +27,13 @@ defaultCheckTxHandler(RoutingTx Tx{txMsg}) = throwSDKError . MessageValidation . map formatMessageSemanticError $ err V.Success _ -> pure () -type family VoidReturn (api :: *) :: * where +type family VoidReturn (api :: Type) :: Type where VoidReturn (a :<|> b) = VoidReturn a :<|> VoidReturn b VoidReturn (path :> a) = path :> VoidReturn a VoidReturn (TypedMessage msg :~> Return a) = TypedMessage msg :~> Return () class DefaultCheckTx api (r :: EffectRow) where - type DefaultCheckTxT api r :: * + type DefaultCheckTxT api r :: Type defaultCheckTx :: Proxy api -> Proxy r -> DefaultCheckTxT api r instance (DefaultCheckTx a r, DefaultCheckTx b r) => DefaultCheckTx (a :<|> b) r where diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Transaction/Router.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Transaction/Router.hs index fafa25e8..65bedf3d 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Transaction/Router.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Transaction/Router.hs @@ -6,6 +6,7 @@ module Tendermint.SDK.BaseApp.Transaction.Router import Control.Monad.IO.Class (liftIO) import Data.ByteString (ByteString) +import Data.Kind (Type) import Data.Monoid import Data.Proxy import Data.String.Conversions (cs) @@ -28,11 +29,10 @@ import Tendermint.SDK.Types.Effects ((:&)) import Tendermint.SDK.Types.Message (HasMessageType (..), Msg (..)) import Tendermint.SDK.Types.TxResult (TxResult) - -------------------------------------------------------------------------------- class HasTxRouter layout (r :: EffectRow) (scope :: Scope) where - type RouteTx layout (s :: EffectRow) :: * + type RouteTx layout (s :: EffectRow) :: Type routeTx :: Proxy layout -> Proxy r diff --git a/hs-abci-sdk/src/Tendermint/SDK/Crypto.hs b/hs-abci-sdk/src/Tendermint/SDK/Crypto.hs index 0a1e779a..fdec818b 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/Crypto.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/Crypto.hs @@ -15,6 +15,7 @@ import Data.ByteArray (convert) import qualified Data.ByteArray.Base64String as Base64 import qualified Data.ByteString as B import qualified Data.ByteString.Short as Short +import Data.Kind (Type) import Data.Maybe (fromMaybe) import Data.Proxy import Data.Text (Text) @@ -28,10 +29,10 @@ class MakeDigest a where -- | Defines the types and methods for the signature schema parameterized by 'alg'. class SignatureSchema alg where - type PubKey alg :: * - type PrivateKey alg :: * - type Signature alg :: * - type Message alg :: * + type PubKey alg :: Type + type PrivateKey alg :: Type + type Signature alg :: Type + type Message alg :: Type algorithm :: Proxy alg -> Text sign :: Proxy alg -> PrivateKey alg -> Message alg -> Signature alg @@ -44,7 +45,7 @@ class SignatureSchema alg where -- | Class allowing for signing and recovering signatures for messages. class SignatureSchema alg => RecoverableSignatureSchema alg where - type RecoverableSignature alg :: * + type RecoverableSignature alg :: Type signRecoverableMessage :: Proxy alg -> PrivateKey alg -> Message alg -> RecoverableSignature alg recover :: Proxy alg -> RecoverableSignature alg -> Message alg -> Maybe (PubKey alg) diff --git a/hs-abci-sdk/src/Tendermint/SDK/Modules/Auth/Keeper.hs b/hs-abci-sdk/src/Tendermint/SDK/Modules/Auth/Keeper.hs index f2b156de..900714e3 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/Modules/Auth/Keeper.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/Modules/Auth/Keeper.hs @@ -21,7 +21,6 @@ import qualified Tendermint.SDK.BaseApp.Store.Map as M import Tendermint.SDK.BaseApp.Store.TH (makeSubStore) import Tendermint.SDK.Modules.Auth.Keys (accountsKey) import Tendermint.SDK.Modules.Auth.Types -import Tendermint.SDK.Types.Address (Address) -------------------------------------------------------------------------------- diff --git a/hs-abci-sdk/test/Tendermint/SDK/Test/IAVLStoreSpec.hs b/hs-abci-sdk/test/Tendermint/SDK/Test/IAVLStoreSpec.hs index 646fc9a9..22acaf31 100644 --- a/hs-abci-sdk/test/Tendermint/SDK/Test/IAVLStoreSpec.hs +++ b/hs-abci-sdk/test/Tendermint/SDK/Test/IAVLStoreSpec.hs @@ -52,7 +52,7 @@ spec' :: Members [Error AppError, Embed IO, Resource] r => Members StoreEffs r = spec' (Proxy :: Proxy r) = do it "can fail to query an empty AuthTreeStore" $ \(driver :: Driver r) -> do - Right mv <- runDriver driver $ tag @'QueryAndMempool $ + Right mv <- runDriver driver $ tag @'QueryAndMempool @ReadStore $ get store IntStoreKey mv `shouldBe` Nothing diff --git a/hs-abci-server/src/Network/ABCI/Server.hs b/hs-abci-server/src/Network/ABCI/Server.hs index a01b27bf..b0d66358 100644 --- a/hs-abci-server/src/Network/ABCI/Server.hs +++ b/hs-abci-server/src/Network/ABCI/Server.hs @@ -5,7 +5,6 @@ import qualified Data.Conduit.List as CL import Data.Conduit.Network (AppData, ServerSettings, appSink, appSource, runTCPServer, serverSettings) -import Data.Monoid (mempty) import Data.String (fromString) import Network.ABCI.Server.App (App (..)) import qualified Network.ABCI.Server.App as App diff --git a/hs-abci-server/src/Network/ABCI/Server/App.hs b/hs-abci-server/src/Network/ABCI/Server/App.hs index 7c7ce228..af576909 100644 --- a/hs-abci-server/src/Network/ABCI/Server/App.hs +++ b/hs-abci-server/src/Network/ABCI/Server/App.hs @@ -27,6 +27,7 @@ import Data.Aeson.Types (Parser) import Data.Bifunctor (first) import qualified Data.ByteString as BS import Data.Function ((&)) +import Data.Kind (Type) import qualified Data.ProtoLens as PL import Data.ProtoLens.Encoding.Bytes (getVarInt, putVarInt, runBuilder, runParser, @@ -34,7 +35,6 @@ import Data.ProtoLens.Encoding.Bytes (getVarInt, putVarInt, wordToSignedInt64) import Data.String.Conversions (cs) import Data.Text (Text) -import Data.Traversable (traverse) import Network.ABCI.Server.App.DecodeError (DecodeError) import qualified Network.ABCI.Server.App.DecodeError as DecodeError import qualified Network.ABCI.Types.Messages.Request as Request @@ -129,7 +129,7 @@ reqResToJSON' msgType message = object -- * Mempool Connection, sends only: CheckTx and Flush requests -- * Consensus Connection, InitChain,: BeginBlock, DeliverTx, EndBlock and Commit requests -- https://github.com/tendermint/tendermint/blob/v0.32.2/proxy/app_conn.go#L11-L41 -data Request (m :: MessageType) :: * where +data Request (m :: MessageType) :: Type where -- Info/Query Connection RequestEcho :: Request.Echo -> Request 'MTEcho RequestInfo :: Request.Info -> Request 'MTInfo @@ -211,7 +211,7 @@ withProto f value = case value of -- Response -------------------------------------------------------------------------------- -data Response (m :: MessageType) :: * where +data Response (m :: MessageType) :: Type where ResponseEcho :: Response.Echo -> Response 'MTEcho ResponseFlush :: Response.Flush -> Response 'MTFlush ResponseInfo :: Response.Info -> Response 'MTInfo diff --git a/hs-abci-test-utils/src/Tendermint/Utils/ClientUtils.hs b/hs-abci-test-utils/src/Tendermint/Utils/ClientUtils.hs index c0213edf..9ad1cb73 100644 --- a/hs-abci-test-utils/src/Tendermint/Utils/ClientUtils.hs +++ b/hs-abci-test-utils/src/Tendermint/Utils/ClientUtils.hs @@ -21,6 +21,7 @@ import Tendermint.Utils.Client (QueryClientResponse (.. assertTx :: Monad m + => MonadFail m => m (TxClientResponse a b) -> m (SynchronousResponse a b) assertTx m = do @@ -34,6 +35,7 @@ assertTx m = do -- get the logged events from a deliver response, deliverTxEvents :: Monad m + => MonadFail m => Proxy e -> SynchronousResponse a b -> m [Event] @@ -45,7 +47,7 @@ deliverTxEvents _ SynchronousResponse{deliverTxResponse} = -- check for a specific check response code ensureCheckResponseCode - :: Monad m + :: MonadFail m => Word32 -> SynchronousResponse a b -> m () @@ -63,6 +65,7 @@ ensureCheckResponseCode code SynchronousResponse{checkTxResponse} = -- check for a specific check response code ensureDeliverResponseCode :: Monad m + => MonadFail m => Word32 -> SynchronousResponse a b -> m () @@ -78,7 +81,7 @@ ensureDeliverResponseCode code SynchronousResponse{deliverTxResponse} = " with expected code " <> show code <> "." ensureResponseCodes - :: Monad m + :: MonadFail m => (Word32, Word32) -> SynchronousResponse a b -> m () @@ -92,6 +95,7 @@ ensureResponseCodes (checkCode, deliverCode) resp = do assertQuery :: Monad m + => MonadFail m => m (QueryClientResponse a) -> m (QueryResult a) assertQuery m = do @@ -102,6 +106,7 @@ assertQuery m = do ensureQueryResponseCode :: Monad m + => MonadFail m => Word32 -> QueryClientResponse a -> m () diff --git a/hs-abci-test-utils/src/Tendermint/Utils/QueryClient/Class.hs b/hs-abci-test-utils/src/Tendermint/Utils/QueryClient/Class.hs index f5078fdd..d7b1bfeb 100644 --- a/hs-abci-test-utils/src/Tendermint/Utils/QueryClient/Class.hs +++ b/hs-abci-test-utils/src/Tendermint/Utils/QueryClient/Class.hs @@ -6,6 +6,7 @@ import Control.Monad.Reader (ReaderT) import qualified Data.ByteArray.Base64String as Base64 import qualified Data.ByteArray.HexString as Hex import Data.ByteString (ByteString) +import Data.Kind (Type) import Data.Proxy import Data.String.Conversions (cs) import Data.Text (Text, intercalate) @@ -28,7 +29,6 @@ import qualified Tendermint.SDK.BaseApp.Store.Map as M import qualified Tendermint.SDK.BaseApp.Store.Var as V import Tendermint.SDK.Codec (HasCodec (decode)) import Tendermint.Utils.QueryClient.Types -import Web.Internal.HttpApiData (ToHttpApiData (..)) class Monad m => RunQueryClient m where -- | How to make a request. @@ -48,7 +48,7 @@ type QueryStringList = [(Text, Text)] class HasQueryClient m layout where - type ClientQ (m :: * -> *) layout :: * + type ClientQ (m :: Type -> Type) layout :: Type genClientQ :: Proxy m -> Proxy layout -> (Req.Query, QueryStringList) -> ClientQ m layout instance (HasQueryClient m a, HasQueryClient m b) => HasQueryClient m (a :<|> b) where diff --git a/hs-abci-test-utils/src/Tendermint/Utils/TxClient/Class.hs b/hs-abci-test-utils/src/Tendermint/Utils/TxClient/Class.hs index 2d0d9c70..d5dfe276 100644 --- a/hs-abci-test-utils/src/Tendermint/Utils/TxClient/Class.hs +++ b/hs-abci-test-utils/src/Tendermint/Utils/TxClient/Class.hs @@ -11,6 +11,7 @@ module Tendermint.Utils.TxClient.Class import Control.Monad.IO.Class (liftIO) import Control.Monad.Reader (ReaderT, ask) import qualified Data.ByteArray.Base64String as Base64 +import Data.Kind (Type) import Data.Proxy import Data.String.Conversions (cs) import Data.Text (Text) @@ -56,7 +57,7 @@ defaultClientTxOpts = ClientTxOpts "" 0 class HasTxClient m layoutC layoutD where - type ClientT (m :: * -> *) layoutC layoutD :: * + type ClientT (m :: Type -> Type) layoutC layoutD :: Type genClientT :: Proxy m -> Proxy layoutC -> Proxy layoutD -> ClientTxOpts -> ClientT m layoutC layoutD instance (HasTxClient m a c, HasTxClient m b d) => HasTxClient m (a :<|> b) (c :<|> d) where diff --git a/hs-abci-types/package.yaml b/hs-abci-types/package.yaml index ffd03e8b..30c30874 100644 --- a/hs-abci-types/package.yaml +++ b/hs-abci-types/package.yaml @@ -65,20 +65,19 @@ library: - Network.ABCI.Types.Messages.Request - Network.ABCI.Types.Messages.Response - Network.ABCI.Types.Messages.FieldTypes - other-modules: - - Data.Time.Calendar.Private - - Data.Time.Orphans generated-exposed-modules: - Proto.Types - Proto.Types_Fields - - Proto.Vendored.Gogo.Protobuf.Gogoproto.Gogo - - Proto.Vendored.Gogo.Protobuf.Gogoproto.Gogo_Fields - - Proto.Vendored.Google.Protobuf.Timestamp - - Proto.Vendored.Google.Protobuf.Timestamp_Fields - - Proto.Vendored.Tendermint.Tendermint.Crypto.Merkle.Merkle - - Proto.Vendored.Tendermint.Tendermint.Crypto.Merkle.Merkle_Fields - - Proto.Vendored.Tendermint.Tendermint.Libs.Common.Types - - Proto.Vendored.Tendermint.Tendermint.Libs.Common.Types_Fields + - Proto.Gogo.Protobuf.Gogoproto.Gogo + - Proto.Gogo.Protobuf.Gogoproto.Gogo_Fields + - Proto.Google.Protobuf.Descriptor + - Proto.Google.Protobuf.Descriptor_Fields + - Proto.Google.Protobuf.Timestamp + - Proto.Google.Protobuf.Timestamp_Fields + - Proto.Tendermint.Tendermint.Crypto.Merkle.Merkle + - Proto.Tendermint.Tendermint.Crypto.Merkle.Merkle_Fields + - Proto.Tendermint.Tendermint.Libs.Common.Types + - Proto.Tendermint.Tendermint.Libs.Common.Types_Fields tests: hs-abci-types-test: diff --git a/hs-abci-types/protos/vendored/gogo/protobuf/gogoproto/gogo.proto b/hs-abci-types/protos/gogo/protobuf/gogoproto/gogo.proto similarity index 100% rename from hs-abci-types/protos/vendored/gogo/protobuf/gogoproto/gogo.proto rename to hs-abci-types/protos/gogo/protobuf/gogoproto/gogo.proto diff --git a/hs-abci-types/protos/vendored/google/protobuf/descriptor.proto b/hs-abci-types/protos/google/protobuf/descriptor.proto similarity index 100% rename from hs-abci-types/protos/vendored/google/protobuf/descriptor.proto rename to hs-abci-types/protos/google/protobuf/descriptor.proto diff --git a/hs-abci-types/protos/vendored/google/protobuf/timestamp.proto b/hs-abci-types/protos/google/protobuf/timestamp.proto similarity index 100% rename from hs-abci-types/protos/vendored/google/protobuf/timestamp.proto rename to hs-abci-types/protos/google/protobuf/timestamp.proto diff --git a/hs-abci-types/protos/vendored/tendermint/tendermint/crypto/merkle/merkle.proto b/hs-abci-types/protos/tendermint/tendermint/crypto/merkle/merkle.proto similarity index 93% rename from hs-abci-types/protos/vendored/tendermint/tendermint/crypto/merkle/merkle.proto rename to hs-abci-types/protos/tendermint/tendermint/crypto/merkle/merkle.proto index bd9bc5f1..63bea36a 100644 --- a/hs-abci-types/protos/vendored/tendermint/tendermint/crypto/merkle/merkle.proto +++ b/hs-abci-types/protos/tendermint/tendermint/crypto/merkle/merkle.proto @@ -3,7 +3,7 @@ package merkle; // For more information on gogo.proto, see: // https://github.com/gogo/protobuf/blob/master/extensions.md -import "vendored/gogo/protobuf/gogoproto/gogo.proto"; +import "gogo/protobuf/gogoproto/gogo.proto"; option (gogoproto.marshaler_all) = true; option (gogoproto.unmarshaler_all) = true; diff --git a/hs-abci-types/protos/vendored/tendermint/tendermint/libs/common/types.proto b/hs-abci-types/protos/tendermint/tendermint/libs/common/types.proto similarity index 92% rename from hs-abci-types/protos/vendored/tendermint/tendermint/libs/common/types.proto rename to hs-abci-types/protos/tendermint/tendermint/libs/common/types.proto index 54f1d52b..9b5437fb 100644 --- a/hs-abci-types/protos/vendored/tendermint/tendermint/libs/common/types.proto +++ b/hs-abci-types/protos/tendermint/tendermint/libs/common/types.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package common; -import "vendored/gogo/protobuf/gogoproto/gogo.proto"; +import "gogo/protobuf/gogoproto/gogo.proto"; option (gogoproto.marshaler_all) = true; option (gogoproto.unmarshaler_all) = true; diff --git a/hs-abci-types/protos/types.proto b/hs-abci-types/protos/types.proto index ed60c8dd..faa585ee 100644 --- a/hs-abci-types/protos/types.proto +++ b/hs-abci-types/protos/types.proto @@ -3,10 +3,10 @@ package types; // For more information on gogo.proto, see: // https://github.com/gogo/protobuf/blob/master/extensions.md -import "vendored/gogo/protobuf/gogoproto/gogo.proto"; -import "vendored/google/protobuf/timestamp.proto"; -import "vendored/tendermint/tendermint/libs/common/types.proto"; -import "vendored/tendermint/tendermint/crypto/merkle/merkle.proto"; +import "gogo/protobuf/gogoproto/gogo.proto"; +import "google/protobuf/timestamp.proto"; +import "tendermint/tendermint/libs/common/types.proto"; +import "tendermint/tendermint/crypto/merkle/merkle.proto"; // This file is copied from http://github.com/tendermint/abci // NOTE: When using custom types, mind the warnings. @@ -335,4 +335,4 @@ service ABCIApplication { rpc InitChain(RequestInitChain) returns (ResponseInitChain); rpc BeginBlock(RequestBeginBlock) returns (ResponseBeginBlock); rpc EndBlock(RequestEndBlock) returns (ResponseEndBlock); -} \ No newline at end of file +} diff --git a/hs-abci-types/src/Data/ByteArray/Base64String.hs b/hs-abci-types/src/Data/ByteArray/Base64String.hs index 1314c720..0a7fcbb8 100644 --- a/hs-abci-types/src/Data/ByteArray/Base64String.hs +++ b/hs-abci-types/src/Data/ByteArray/Base64String.hs @@ -9,8 +9,6 @@ import Data.ByteArray (ByteArray, ByteArrayAccess, convert) import Data.ByteArray.Encoding (Base (Base64), convertFromBase, convertToBase) import Data.ByteString (ByteString) -import Data.Monoid (Monoid) -import Data.Semigroup (Semigroup) import Data.String (IsString (..)) import Data.Text (Text) import Data.Text.Encoding (decodeUtf8, encodeUtf8) diff --git a/hs-abci-types/src/Data/ByteArray/HexString.hs b/hs-abci-types/src/Data/ByteArray/HexString.hs index fd895060..6703a151 100644 --- a/hs-abci-types/src/Data/ByteArray/HexString.hs +++ b/hs-abci-types/src/Data/ByteArray/HexString.hs @@ -10,8 +10,6 @@ import qualified Data.ByteArray as BA (drop, take) import Data.ByteArray.Encoding (Base (Base16), convertFromBase, convertToBase) import Data.ByteString (ByteString) -import Data.Monoid (Monoid, (<>)) -import Data.Semigroup (Semigroup) import Data.String (IsString (..)) import Data.Text (Text) import Data.Text.Encoding (decodeUtf8, encodeUtf8) diff --git a/hs-abci-types/src/Data/Time/Calendar/Private.hs b/hs-abci-types/src/Data/Time/Calendar/Private.hs deleted file mode 100644 index 1d0b5926..00000000 --- a/hs-abci-types/src/Data/Time/Calendar/Private.hs +++ /dev/null @@ -1,35 +0,0 @@ --- venored from: http://hackage.haskell.org/package/time-1.9.3/docs/src/Data.Time.Calendar.Private.html - -module Data.Time.Calendar.Private - ( PadOption (..) - , ShowPadded (..) - , quotBy - , remBy - ) where - -data PadOption = Pad Int Char | NoPad - -showPadded :: PadOption -> String -> String -showPadded NoPad s = s -showPadded (Pad i c) s = replicate (i - length s) c ++ s - -class (Num t,Ord t,Show t) => ShowPadded t where - showPaddedNum :: PadOption -> t -> String - -instance ShowPadded Integer where - showPaddedNum NoPad i = show i - showPaddedNum pad i | i < 0 = '-':(showPaddedNum pad (negate i)) - showPaddedNum pad i = showPadded pad $ show i - -instance ShowPadded Int where - showPaddedNum NoPad i = show i - showPaddedNum _pad i | i == minBound = show i - showPaddedNum pad i | i < 0 = '-':(showPaddedNum pad (negate i)) - showPaddedNum pad i = showPadded pad $ show i - -quotBy :: (Real a,Integral b) => a -> a -> b -quotBy d n = truncate ((toRational n) / (toRational d)) - -remBy :: Real a => a -> a -> a -remBy d n = n - (fromInteger f) * d where - f = quotBy d n diff --git a/hs-abci-types/src/Data/Time/Orphans.hs b/hs-abci-types/src/Data/Time/Orphans.hs deleted file mode 100644 index 68b4e89b..00000000 --- a/hs-abci-types/src/Data/Time/Orphans.hs +++ /dev/null @@ -1,109 +0,0 @@ --- vendored from: http://hackage.haskell.org/package/time-1.9.3/docs/src/Data.Time.Format.Format.Class.html -{-# OPTIONS_GHC -fno-warn-orphans #-} -module Data.Time.Orphans () where - -import Data.Fixed (Pico) -import Data.Time.Calendar.Private (PadOption (..), ShowPadded (..), - quotBy, remBy) -import Data.Time.Clock (DiffTime) -import Data.Time.Format -import Data.Traversable (for) -import Text.Read (readMaybe) - -type FormatNumericPadding = Maybe Char - -getPadOption - :: Bool - -> Bool - -> Int - -> Char - -> Maybe FormatNumericPadding - -> Maybe Int - -> PadOption -getPadOption trunc fdef idef cdef mnpad mi = let - c = case mnpad of - Just (Just c') -> c' - Just Nothing -> ' ' - _ -> cdef - i = case mi of - Just i' -> case mnpad of - Just Nothing -> i' - _ -> if trunc then i' else max i' idef - Nothing -> idef - f = case mi of - Just _ -> True - Nothing -> case mnpad of - Nothing -> fdef - Just Nothing -> False - Just (Just _) -> True - in if f then Pad i c else NoPad - -formatGeneral - :: Bool - -> Bool - -> Int - -> Char - -> (TimeLocale -> PadOption -> t -> String) - -> (TimeLocale -> Maybe NumericPadOption -> Maybe Int -> t -> String) -formatGeneral trunc fdef idef cdef ff tl np w = ff tl $ - getPadOption trunc fdef idef cdef np w - -formatNumber - :: (ShowPadded i) - => Bool - -> Int - -> Char - -> (t -> i) - -> (TimeLocale -> Maybe NumericPadOption -> Maybe Int -> t -> String) -formatNumber fdef idef cdef ff = formatGeneral False fdef idef cdef $ \_ pado -> showPaddedNum pado . ff - -formatNumberStd - :: Int - -> (t -> Integer) - -> (TimeLocale -> Maybe NumericPadOption -> Maybe Int -> t -> String) -formatNumberStd n = formatNumber False n '0' - -instance FormatTime DiffTime where - formatCharacter 'w' = Just $ formatNumberStd 1 $ quotBy $ 7 * 86400 - formatCharacter 'd' = Just $ formatNumberStd 1 $ quotBy 86400 - formatCharacter 'D' = Just $ formatNumberStd 1 $ remBy 7 . quotBy 86400 - formatCharacter 'h' = Just $ formatNumberStd 1 $ quotBy 3600 - formatCharacter 'H' = Just $ formatNumberStd 2 $ remBy 24 . quotBy 3600 - formatCharacter 'm' = Just $ formatNumberStd 1 $ quotBy 60 - formatCharacter 'M' = Just $ formatNumberStd 2 $ remBy 60 . quotBy 60 - -- these are weird - formatCharacter 's' = Just $ formatNumberStd 1 $ quotBy 1 - formatCharacter 'S' = Just $ formatNumberStd 2 $ remBy 60 . quotBy 1 - formatCharacter _ = Nothing - -buildTimeDays :: [(Char,String)] -> Maybe Integer -buildTimeDays xs = do - tt <- for xs $ \(c,s) -> case c of - 'w' -> fmap ((*) 7) $ readMaybe s - 'd' -> readMaybe s - 'D' -> readMaybe s - _ -> return 0 - return $ sum tt - -buildTimeSeconds :: [(Char,String)] -> Maybe Pico -buildTimeSeconds xs = do - tt <- for xs $ \(c,s) -> let - readInt :: Integer -> Maybe Pico - readInt t = do - i <- readMaybe s - return $ fromInteger $ i * t - in case c of - 'h' -> readInt 3600 - 'H' -> readInt 3600 - 'm' -> readInt 60 - 'M' -> readInt 60 - 's' -> readMaybe s - 'S' -> readMaybe s - _ -> return 0 - return $ sum tt - -instance ParseTime DiffTime where - buildTime _ xs = do - dd <- buildTimeDays xs - tt <- buildTimeSeconds xs - return $ (fromInteger dd * 86400) + realToFrac tt diff --git a/hs-abci-types/src/Network/ABCI/Types/Messages/Common.hs b/hs-abci-types/src/Network/ABCI/Types/Messages/Common.hs index d050fb09..42e9c2b4 100644 --- a/hs-abci-types/src/Network/ABCI/Types/Messages/Common.hs +++ b/hs-abci-types/src/Network/ABCI/Types/Messages/Common.hs @@ -3,13 +3,13 @@ module Network.ABCI.Types.Messages.Common , makeABCILenses ) where -import Control.Lens ((&), (.~)) -import Control.Lens.TH (DefName (TopName), lensField, - lensRules, makeLensesWith) -import Data.Aeson (Options) -import Data.Aeson.Casing (aesonDrop, snakeCase) +import Control.Lens ((&), (.~)) +import Control.Lens.TH (DefName (TopName), lensField, lensRules, + makeLensesWith) +import Data.Aeson (Options) +import Data.Aeson.Casing (aesonDrop, snakeCase) import Language.Haskell.TH -import Language.Haskell.TH.Syntax (Name, nameBase) +--import Language.Haskell.TH.Syntax (Name, nameBase) defaultABCIOptions :: String -> Options diff --git a/hs-abci-types/src/Network/ABCI/Types/Messages/FieldTypes.hs b/hs-abci-types/src/Network/ABCI/Types/Messages/FieldTypes.hs index a60c89d2..8f1d9637 100644 --- a/hs-abci-types/src/Network/ABCI/Types/Messages/FieldTypes.hs +++ b/hs-abci-types/src/Network/ABCI/Types/Messages/FieldTypes.hs @@ -1,65 +1,49 @@ module Network.ABCI.Types.Messages.FieldTypes where -import Control.Lens - (iso, - traverse, - (&), - (.~), - (^.), - (^..), - (^?), - _Just) -import Control.Lens.Wrapped - (Wrapped (..), - _Unwrapped') -import Data.Aeson - (FromJSON (..), - ToJSON (..), - Value (..), - genericParseJSON, - genericToJSON, - withObject, - (.!=), - (.:), - (.:?)) -import Data.ByteArray.Base64String - (Base64String) -import qualified Data.ByteArray.Base64String as Base64 -import Data.ByteArray.HexString - (HexString) -import qualified Data.ByteArray.HexString as Hex -import Data.Int - (Int32, - Int64) -import Data.ProtoLens.Message - (Message (defMessage)) -import Data.Text - (Text, - pack, - unpack) -import Data.Time.Clock - (DiffTime, - diffTimeToPicoseconds, - picosecondsToDiffTime) -import Data.Time.Format - (defaultTimeLocale, - parseTimeOrError) -import Data.Time.Orphans - () -import Data.Word - (Word64) -import GHC.Generics - (Generic) -import Network.ABCI.Types.Messages.Common - (defaultABCIOptions) -import qualified Proto.Types as PT -import qualified Proto.Types_Fields as PT -import qualified Proto.Vendored.Google.Protobuf.Timestamp as T -import qualified Proto.Vendored.Google.Protobuf.Timestamp_Fields as T -import qualified Proto.Vendored.Tendermint.Tendermint.Crypto.Merkle.Merkle as MT -import qualified Proto.Vendored.Tendermint.Tendermint.Crypto.Merkle.Merkle_Fields as MT -import qualified Proto.Vendored.Tendermint.Tendermint.Libs.Common.Types as CT -import qualified Proto.Vendored.Tendermint.Tendermint.Libs.Common.Types_Fields as CT +import Control.Lens (iso, + (&), + (.~), + (^.), + (^..), + (^?), + _Just) +import Control.Lens.Wrapped (Wrapped (..), + _Unwrapped') +import Data.Aeson (FromJSON (..), + ToJSON (..), + Value (..), + genericParseJSON, + genericToJSON, + withObject, + (.!=), + (.:), + (.:?)) +import Data.ByteArray.Base64String (Base64String) +import qualified Data.ByteArray.Base64String as Base64 +import Data.ByteArray.HexString (HexString) +import qualified Data.ByteArray.HexString as Hex +import Data.Int (Int32, + Int64) +import Data.ProtoLens.Message (Message (defMessage)) +import Data.Text (Text, + pack, + unpack) +import Data.Time.Clock (DiffTime, + diffTimeToPicoseconds, + picosecondsToDiffTime) +import Data.Time.Format (defaultTimeLocale, + parseTimeOrError) +import Data.Word (Word64) +import GHC.Generics (Generic) +import Network.ABCI.Types.Messages.Common (defaultABCIOptions) +import qualified Proto.Google.Protobuf.Timestamp as T +import qualified Proto.Google.Protobuf.Timestamp_Fields as T +import qualified Proto.Tendermint.Tendermint.Crypto.Merkle.Merkle as MT +import qualified Proto.Tendermint.Tendermint.Crypto.Merkle.Merkle_Fields as MT +import qualified Proto.Tendermint.Tendermint.Libs.Common.Types as CT +import qualified Proto.Tendermint.Tendermint.Libs.Common.Types_Fields as CT +import qualified Proto.Types as PT +import qualified Proto.Types_Fields as PT newtype WrappedVal a = WrappedVal { unWrappedVal :: a } deriving (Eq, Show, Generic) diff --git a/hs-abci-types/src/Network/ABCI/Types/Messages/Request.hs b/hs-abci-types/src/Network/ABCI/Types/Messages/Request.hs index 47953d39..2002d156 100644 --- a/hs-abci-types/src/Network/ABCI/Types/Messages/Request.hs +++ b/hs-abci-types/src/Network/ABCI/Types/Messages/Request.hs @@ -2,9 +2,8 @@ module Network.ABCI.Types.Messages.Request where -import Control.Lens (iso, traverse, (&), - (.~), (^.), (^..), - (^?), _Just) +import Control.Lens (iso, (&), (.~), (^.), + (^..), (^?), _Just) import Control.Lens.Wrapped (Wrapped (..), _Unwrapped') import Data.Aeson (FromJSON (..), diff --git a/hs-abci-types/src/Network/ABCI/Types/Messages/Response.hs b/hs-abci-types/src/Network/ABCI/Types/Messages/Response.hs index 1ffd69e5..6978b194 100644 --- a/hs-abci-types/src/Network/ABCI/Types/Messages/Response.hs +++ b/hs-abci-types/src/Network/ABCI/Types/Messages/Response.hs @@ -2,9 +2,8 @@ module Network.ABCI.Types.Messages.Response where -import Control.Lens (iso, traverse, (&), - (.~), (^.), (^..), - (^?), _Just) +import Control.Lens (iso, (&), (.~), (^.), + (^..), (^?), _Just) import Control.Lens.Wrapped (Wrapped (..), _Unwrapped') import Data.Aeson (FromJSON (..), diff --git a/hs-abci-types/test/Network/ABCI/Test/Types/MessagesSpec.hs b/hs-abci-types/test/Network/ABCI/Test/Types/MessagesSpec.hs index 2ce41e68..e9ad59bf 100644 --- a/hs-abci-types/test/Network/ABCI/Test/Types/MessagesSpec.hs +++ b/hs-abci-types/test/Network/ABCI/Test/Types/MessagesSpec.hs @@ -1,27 +1,25 @@ module Network.ABCI.Test.Types.MessagesSpec (spec) where -import Control.Lens (Iso', from, - set, to, - traverse, - (%~), (&), - (^.), _Just) -import Control.Lens.Wrapped (Wrapped (..), - _Unwrapped') -import Data.ProtoLens.Arbitrary (ArbitraryMessage (..)) -import Data.ProtoLens.Field (HasField) -import Data.ProtoLens.Message (Message (..)) -import Data.Proxy (Proxy (..)) -import Network.ABCI.Test.Types.Messages.Instances () -import qualified Network.ABCI.Types.Messages.FieldTypes as FT -import qualified Network.ABCI.Types.Messages.Request as Request -import qualified Network.ABCI.Types.Messages.Response as Response -import qualified Proto.Types as PT -import qualified Proto.Types_Fields as PT -import qualified Proto.Vendored.Google.Protobuf.Timestamp as T -import qualified Proto.Vendored.Google.Protobuf.Timestamp_Fields as T +import Control.Lens (Iso', from, set, + to, (%~), (&), + (^.), _Just) +import Control.Lens.Wrapped (Wrapped (..), + _Unwrapped') +import Data.ProtoLens.Arbitrary (ArbitraryMessage (..)) +import Data.ProtoLens.Field (HasField) +import Data.ProtoLens.Message (Message (..)) +import Data.Proxy (Proxy (..)) +import Network.ABCI.Test.Types.Messages.Instances () +import qualified Network.ABCI.Types.Messages.FieldTypes as FT +import qualified Network.ABCI.Types.Messages.Request as Request +import qualified Network.ABCI.Types.Messages.Response as Response +import qualified Proto.Google.Protobuf.Timestamp as T +import qualified Proto.Google.Protobuf.Timestamp_Fields as T +import qualified Proto.Types as PT +import qualified Proto.Types_Fields as PT import Test.Hspec -import Test.QuickCheck (Arbitrary, - property) +import Test.QuickCheck (Arbitrary, + property) -------------------------------------------------------------------------------- -- Helpers to check instances diff --git a/hs-iavl-client/package.yaml b/hs-iavl-client/package.yaml index 1ff3d9df..72b9e23c 100644 --- a/hs-iavl-client/package.yaml +++ b/hs-iavl-client/package.yaml @@ -48,6 +48,7 @@ library: dependencies: - base >= 4.7 && < 5 - http2-client + - http2-grpc-proto-lens - http2-client-grpc - proto-lens - proto-lens-runtime @@ -59,8 +60,13 @@ library: - Proto.Iavl.Api - Proto.Iavl.Api_Fields - Proto.Google.Api.Http + - Proto.Google.Api.Http_Fields - Proto.Google.Protobuf.Empty + - Proto.Google.Protobuf.Empty_Fields + - Proto.Google.Protobuf.Descriptor + - Proto.Google.Protobuf.Descriptor_Fields - Proto.Google.Api.Annotations + - Proto.Google.Api.Annotations_Fields tests: hs-iavl-client-test: diff --git a/hs-iavl-client/src/Database/IAVL/RPC.hs b/hs-iavl-client/src/Database/IAVL/RPC.hs index 7438983c..052f16af 100644 --- a/hs-iavl-client/src/Database/IAVL/RPC.hs +++ b/hs-iavl-client/src/Database/IAVL/RPC.hs @@ -1,12 +1,13 @@ module Database.IAVL.RPC where -import Data.ProtoLens.Message (defMessage) -import Network.GRPC.Client (RPC (..), RawReply) -import Network.GRPC.Client.Helpers (GrpcClient, rawUnary) -import Network.HTTP2.Client (ClientIO, TooMuchConcurrency) - -import qualified Proto.Google.Protobuf.Empty as PT (Empty) -import qualified Proto.Iavl.Api as Api +import Data.ProtoLens.Message (defMessage) +import Network.GRPC.Client (RawReply) +import Network.GRPC.Client.Helpers (GrpcClient, rawUnary) +import Network.GRPC.HTTP2.ProtoLens (RPC (..)) +import Network.HTTP2.Client (ClientIO, TooMuchConcurrency) + +import qualified Proto.Google.Protobuf.Empty as PT (Empty) +import qualified Proto.Iavl.Api as Api -------------------------------------------------------------------------------- diff --git a/stack.yaml b/stack.yaml index 8f9fb9d7..a0a2744a 100644 --- a/stack.yaml +++ b/stack.yaml @@ -1,5 +1,5 @@ # https://www.stackage.org/lts-13.27 -resolver: lts-14.11 +resolver: lts-15.10 nix: #enabled: bool # defaults to true on nixos, false everywhere else @@ -17,36 +17,47 @@ packages: - ./hs-iavl-client extra-deps: - - async-2.2.2 - - faker-0.0.0.2 - - gimlh-0.1.3.0 - - random-strings-0.1.1.0 - - proto-lens-runtime-0.5.0.0 - - proto-lens-setup-0.4.0.2 - - lens-labels-0.3.0.1 - - proto-lens-0.5.0.0 - - proto-lens-protoc-0.5.0.0 - - containers-0.5.11.0@sha256:28ad7337057442f75bc689315ab4ec7bdf5e6b2c39668f306672cecd82c02798,16685 + + - compact-0.2.0.0@sha256:9c5785bdc178ea6cf8f514ad35a78c64220e3cdb22216534e4cf496765551c7e,2345 + - faker-0.0.0.2@sha256:e181a9dba8022098d2cca9822b6a616a28d3013ee978076b7c7cd18b6e15c8eb,980 + - ghc-tcplugins-extra-0.3.2@sha256:1bbfd4449c3669a31618ea0ebc5d00d980a53988daad3b6218bab5c8cdff268d,1687 + - gimlh-0.1.3.0@sha256:0cb3513ec36b7f935956b68875de40a05e934cf75499918e1db533b7d32dfc46,747 + - http2-1.6.5 + - http2-client-0.9.0.0@sha256:b8885c89adcc8b9d4ebb9abf6ae0ac6336e3fdf947a2b1f2b95c4e2c8c4acf01,2685 - http-client-0.5.14@sha256:4880b27d6741e331454a1d4c887d96ce3d7d625322c8433983a4b1cd08538577,5348 - - binary-0.8.7.0@sha256:ae3e6cca723ac55c54bbb3fa771bcf18142bc727afd57818e66d6ee6c8044f12,7705 - - text-1.2.4.0@sha256:8c24450feb8e3bbb7ea3e17af24ef57e85db077c4bf53e5bcc345b283d1b1d5b,10081 - - katip-elasticsearch-0.6.0.0@sha256:be8513ce611db989c63c9f836af99699767d4fc3a9cb0fd81fcbae4d1f2ed7ee,2746 - - bloodhound-0.16.0.0@sha256:b7be3a83e7b914fbe80a9b9de29009ad60cff072f5f8d4af4ee64de8e6406d32,5508 - - hpc-0.6.0.3@sha256:de3f7982345d315f1d7713df38b4f2cf09bd274f7d64dffec0cf2a0d9c8aab19,1185 - - katip-datadog-0.1.0.0 - - prometheus-2.1.3 + - network-2.8.0.1 + - parameterized-0.5.0.0@sha256:880717fbb958de1bac015f0a375ab6636f162a72483d987a11e305da6fac6c97,1969 + - polysemy-1.3.0.0@sha256:bf1d559c7e26e8a0ed31fc45d84635e329a4a31bfd39e713a39adf639bcbd309,6141 + - polysemy-plugin-0.2.5.0@sha256:67e30be568a141b852aace1a60e180cb5060fbb2835365a81a3ea779536d6d35,2952 + - polysemy-zoo-0.7.0.0@sha256:e98ba9620128df8f8aea6adec5a0e324103324a2d2368930a2e214a2c334551b,3900 + - prometheus-2.1.3@sha256:4fdf8602f7c74367cda182cf71dab108f78a86993b428bf96b61dd6c519b6f22,4296 + - random-strings-0.1.1.0@sha256:935a7a23dab45411960df77636a29b44ce42b89eeb15f2b1e809d771491fa677,2517 + - semigroups-0.18.5@sha256:41ef9f5f183f66c519c5cddcb3fbfdbc9b67a2b7bfae7d81f91de9ff7367d8c6,5828 + - warp-3.2.28 + - git: https://github.com/oscoin/avl-auth commit: dfc468845a82cdd7d759943b20853999bc026505 + - git: https://github.com/awakesecurity/proto3-suite - commit: 3f6dd6f612cf2eba3c05798926ff924b0d5ab4fa + commit: 45950a3860cbcb3f3177e9725dbdf460d6da9d45 - git: https://github.com/awakesecurity/proto3-wire - commit: 23015cf6363d1962fde6bdff0de111f7ec59ab75 - - polysemy-1.2.3.0 - - polysemy-zoo-0.6.0.0 - - http2-client-0.9.0.0 - - http2-grpc-types-0.4.0.0 - - git: https://github.com/lucasdicioccio/http2-client-grpc - commit: 6a1aacfc18e312ef57552133f13dd1024c178706 + commit: 5df56fe1ad26a18b1dfbb2a5b8d35b4c1ad63f53 + + - git: https://github.com/haskell-grpc-native/http2-grpc-haskell + commit: 496e92bc967eff02ac3698ba12ba2dfe38bc8b74 + subdirs: + - http2-client-grpc + - http2-grpc-types + - http2-grpc-proto-lens/ + + - git: https://github.com/lancelet/tintin + commit: 9493e752fdebff877292872d86de3a46c6e257bd + - inliterate-0.1.0@sha256:61b17ab3cef803512c264e27e463390b47af59d7d2b3a2a89bea2eac0cf84266,1853 + - megaparsec-7.0.5@sha256:45e1f1348fab2783646fdb4d9e6097568981a740951c7356d36d794e2baba305,3902 + - cheapskate-0.1.1.2@sha256:b8ae3cbb826610ea45e6840b7fde0af2c2ea6690cb311edfe9683f61c0a50d96,3072 + - require-0.4.8@sha256:7ff9ca53134bf2d7ee4f6be44b70dd8284388bbe4319fd34d33b0d8cabeed7c8,3623 + + explicit-setup-deps: hs-abci-server: true diff --git a/stack.yaml.lock b/stack.yaml.lock index 4146e7a1..2daa935b 100644 --- a/stack.yaml.lock +++ b/stack.yaml.lock @@ -5,135 +5,118 @@ packages: - completed: - hackage: async-2.2.2@sha256:ed46f0f5be36cf8a3e3aebc6827d015e1f3bf9615c245e057b9e9bd35faddd21,2895 + hackage: compact-0.2.0.0@sha256:9c5785bdc178ea6cf8f514ad35a78c64220e3cdb22216534e4cf496765551c7e,2345 pantry-tree: - size: 501 - sha256: dab5a4c2126fbce3f4a7c15ccf66e60de61d3eccae071f4bfbad036087399f32 + size: 546 + sha256: 6f7da573fbcddc109e1521edc07f1b34d7506473a3930074453e829daf901d71 original: - hackage: async-2.2.2 + hackage: compact-0.2.0.0@sha256:9c5785bdc178ea6cf8f514ad35a78c64220e3cdb22216534e4cf496765551c7e,2345 - completed: hackage: faker-0.0.0.2@sha256:e181a9dba8022098d2cca9822b6a616a28d3013ee978076b7c7cd18b6e15c8eb,980 pantry-tree: size: 792 sha256: d1fd5fcf4175f259b84f9036ab8d53d23457eb1ab9eab163dce83e8a8d7fca65 original: - hackage: faker-0.0.0.2 -- completed: - hackage: gimlh-0.1.3.0@sha256:0cb3513ec36b7f935956b68875de40a05e934cf75499918e1db533b7d32dfc46,747 - pantry-tree: - size: 201 - sha256: 106e63ee076f0339ae5e15c599f5eb15d1e663f1f2303417000f26c9514f24c6 - original: - hackage: gimlh-0.1.3.0 -- completed: - hackage: random-strings-0.1.1.0@sha256:935a7a23dab45411960df77636a29b44ce42b89eeb15f2b1e809d771491fa677,2517 - pantry-tree: - size: 663 - sha256: 5a382966fdd8d5220b5791f3bff6db00d2ea29235e2716dadd52461b8a8beb97 - original: - hackage: random-strings-0.1.1.0 + hackage: faker-0.0.0.2@sha256:e181a9dba8022098d2cca9822b6a616a28d3013ee978076b7c7cd18b6e15c8eb,980 - completed: - hackage: proto-lens-runtime-0.5.0.0@sha256:cb39cf13ce4f7dac5414f94a7afe0adc9b831312e6b60588a23bd816accc385f,3132 + hackage: ghc-tcplugins-extra-0.3.2@sha256:1bbfd4449c3669a31618ea0ebc5d00d980a53988daad3b6218bab5c8cdff268d,1687 pantry-tree: - size: 168 - sha256: c45212c2b75d27b7a1e32bb34e1ffd7b3cca98e16f4d5a02016ff9b744a0df64 + size: 331 + sha256: 4b16989344380c912e476dc232cc58264837b498e31a8bf16a17092ba6c1cfb9 original: - hackage: proto-lens-runtime-0.5.0.0 + hackage: ghc-tcplugins-extra-0.3.2@sha256:1bbfd4449c3669a31618ea0ebc5d00d980a53988daad3b6218bab5c8cdff268d,1687 - completed: - hackage: proto-lens-setup-0.4.0.2@sha256:2bcc26cd79a318b1988ed89d62f759054fb58bc515700bc4f594bae4a3a64271,3185 + hackage: gimlh-0.1.3.0@sha256:0cb3513ec36b7f935956b68875de40a05e934cf75499918e1db533b7d32dfc46,747 pantry-tree: - size: 235 - sha256: 2665efe3a077ba832137de64d2c44493ae7db536b7a0aece2b1778d8a865a76d + size: 201 + sha256: 106e63ee076f0339ae5e15c599f5eb15d1e663f1f2303417000f26c9514f24c6 original: - hackage: proto-lens-setup-0.4.0.2 + hackage: gimlh-0.1.3.0@sha256:0cb3513ec36b7f935956b68875de40a05e934cf75499918e1db533b7d32dfc46,747 - completed: - hackage: lens-labels-0.3.0.1@sha256:228b70bc37d3531c7a80aaa56f7d69bf9f9f0d85637bd886966b01f7d03d3f6b,1196 + hackage: http2-1.6.5@sha256:f1743ba4a267f525106c218894e4bd2acf28fa047a9ba660b4a317a97382a877,13999 pantry-tree: - size: 400 - sha256: d0898958b1d869aafe7796452bb04d0e6aef102457ca4c9dcc0fe329271e6091 + size: 43676 + sha256: 7c5c74e748187ae08baafab4af661147dcc128f1464305de68a06c3f0949cb91 original: - hackage: lens-labels-0.3.0.1 + hackage: http2-1.6.5 - completed: - hackage: proto-lens-0.5.0.0@sha256:ec3ad0ab6bd55ac0cd95a2daacb7e826fa2ced6e96c67a57ae1d799b79019c6b,3260 + hackage: http2-client-0.9.0.0@sha256:b8885c89adcc8b9d4ebb9abf6ae0ac6336e3fdf947a2b1f2b95c4e2c8c4acf01,2685 pantry-tree: - size: 2205 - sha256: b80132a6e86ef3238c1bd4bd8dcc9e2beece2791f1a9f905ff254060deb6f582 + size: 853 + sha256: d7a1be66eb14e84cfedd87e8363e406abb244bb74b742e8f0141efce27545008 original: - hackage: proto-lens-0.5.0.0 + hackage: http2-client-0.9.0.0@sha256:b8885c89adcc8b9d4ebb9abf6ae0ac6336e3fdf947a2b1f2b95c4e2c8c4acf01,2685 - completed: - hackage: proto-lens-protoc-0.5.0.0@sha256:bbd744e0b066470f5c433fa3bd20a036326fc01edf290a4ff8d029d95dddb912,2064 + hackage: http-client-0.5.14@sha256:4880b27d6741e331454a1d4c887d96ce3d7d625322c8433983a4b1cd08538577,5348 pantry-tree: - size: 783 - sha256: 30942e172639508c45742e4b0cb6bf3493bee24b291b6cd4c1ad0785f1e9057c + size: 2457 + sha256: 02bcffba9cad572fefb4640f5fc9be68e770b32ab73efcac649db20290994c6d original: - hackage: proto-lens-protoc-0.5.0.0 + hackage: http-client-0.5.14@sha256:4880b27d6741e331454a1d4c887d96ce3d7d625322c8433983a4b1cd08538577,5348 - completed: - hackage: containers-0.5.11.0@sha256:28ad7337057442f75bc689315ab4ec7bdf5e6b2c39668f306672cecd82c02798,16685 + hackage: network-2.8.0.1@sha256:0f165dffa752d8cde30c2bde86f80609c4f1dc5eeb3182d593041f97839c5b3b,3011 pantry-tree: - size: 4849 - sha256: faa4e75922a28f7cfe9920c1d7ab3866b792cefcd29bf79f54cfe3b6b5f57cbf + size: 2488 + sha256: 2dbdda2225969dcd452d983a2ac7e52341e5fc1df76103342c9fac08fc686931 original: - hackage: containers-0.5.11.0@sha256:28ad7337057442f75bc689315ab4ec7bdf5e6b2c39668f306672cecd82c02798,16685 + hackage: network-2.8.0.1 - completed: - hackage: http-client-0.5.14@sha256:4880b27d6741e331454a1d4c887d96ce3d7d625322c8433983a4b1cd08538577,5348 + hackage: parameterized-0.5.0.0@sha256:880717fbb958de1bac015f0a375ab6636f162a72483d987a11e305da6fac6c97,1969 pantry-tree: - size: 2457 - sha256: 02bcffba9cad572fefb4640f5fc9be68e770b32ab73efcac649db20290994c6d + size: 1019 + sha256: 843aed822e03279edf00a2595dfb22038b306f4f0acd6984bd108024c5102f90 original: - hackage: http-client-0.5.14@sha256:4880b27d6741e331454a1d4c887d96ce3d7d625322c8433983a4b1cd08538577,5348 + hackage: parameterized-0.5.0.0@sha256:880717fbb958de1bac015f0a375ab6636f162a72483d987a11e305da6fac6c97,1969 - completed: - hackage: binary-0.8.7.0@sha256:ae3e6cca723ac55c54bbb3fa771bcf18142bc727afd57818e66d6ee6c8044f12,7705 + hackage: polysemy-1.3.0.0@sha256:bf1d559c7e26e8a0ed31fc45d84635e329a4a31bfd39e713a39adf639bcbd309,6141 pantry-tree: - size: 1976 - sha256: 35e44b6d3ccf0d56fc5407dc3f0895e74696a66da189afbd65973c95743f5e25 + size: 4309 + sha256: 770af8c91981ccb8fe388ba62897fdf4eb394df433ab10def66d6e111b6f09f7 original: - hackage: binary-0.8.7.0@sha256:ae3e6cca723ac55c54bbb3fa771bcf18142bc727afd57818e66d6ee6c8044f12,7705 + hackage: polysemy-1.3.0.0@sha256:bf1d559c7e26e8a0ed31fc45d84635e329a4a31bfd39e713a39adf639bcbd309,6141 - completed: - hackage: text-1.2.4.0@sha256:8c24450feb8e3bbb7ea3e17af24ef57e85db077c4bf53e5bcc345b283d1b1d5b,10081 + hackage: polysemy-plugin-0.2.5.0@sha256:67e30be568a141b852aace1a60e180cb5060fbb2835365a81a3ea779536d6d35,2952 pantry-tree: - size: 7457 - sha256: 3437b0a73ce2ae1a81aa8b3438d41a85981c00894cdbee0d6d6d6873046a5d5d + size: 1232 + sha256: 5c90dac2eba48b4e337b302347c233ecaedb63e333641e094e718a548ac86711 original: - hackage: text-1.2.4.0@sha256:8c24450feb8e3bbb7ea3e17af24ef57e85db077c4bf53e5bcc345b283d1b1d5b,10081 + hackage: polysemy-plugin-0.2.5.0@sha256:67e30be568a141b852aace1a60e180cb5060fbb2835365a81a3ea779536d6d35,2952 - completed: - hackage: katip-elasticsearch-0.6.0.0@sha256:be8513ce611db989c63c9f836af99699767d4fc3a9cb0fd81fcbae4d1f2ed7ee,2746 + hackage: polysemy-zoo-0.7.0.0@sha256:e98ba9620128df8f8aea6adec5a0e324103324a2d2368930a2e214a2c334551b,3900 pantry-tree: - size: 679 - sha256: 907421eb58249f6bed58f4e94f00627b383e53fd0ea0737050c1b1f7ab9fee44 + size: 3049 + sha256: 5cc724e74ed56436891e15ce23b82ce432f9e9f735c5111847988f8854009815 original: - hackage: katip-elasticsearch-0.6.0.0@sha256:be8513ce611db989c63c9f836af99699767d4fc3a9cb0fd81fcbae4d1f2ed7ee,2746 + hackage: polysemy-zoo-0.7.0.0@sha256:e98ba9620128df8f8aea6adec5a0e324103324a2d2368930a2e214a2c334551b,3900 - completed: - hackage: bloodhound-0.16.0.0@sha256:b7be3a83e7b914fbe80a9b9de29009ad60cff072f5f8d4af4ee64de8e6406d32,5508 + hackage: prometheus-2.1.3@sha256:4fdf8602f7c74367cda182cf71dab108f78a86993b428bf96b61dd6c519b6f22,4296 pantry-tree: - size: 4812 - sha256: 7f21ce00e92f7fd24a91dd19a82aab38f62047c1b93f2cc070481760b41a4d37 + size: 1559 + sha256: a8d0a0150abddf0d7b673fcb19ff2ef235d4005161826e1538ad802394c9fc0e original: - hackage: bloodhound-0.16.0.0@sha256:b7be3a83e7b914fbe80a9b9de29009ad60cff072f5f8d4af4ee64de8e6406d32,5508 + hackage: prometheus-2.1.3@sha256:4fdf8602f7c74367cda182cf71dab108f78a86993b428bf96b61dd6c519b6f22,4296 - completed: - hackage: hpc-0.6.0.3@sha256:de3f7982345d315f1d7713df38b4f2cf09bd274f7d64dffec0cf2a0d9c8aab19,1185 + hackage: random-strings-0.1.1.0@sha256:935a7a23dab45411960df77636a29b44ce42b89eeb15f2b1e809d771491fa677,2517 pantry-tree: - size: 432 - sha256: 4686c367eb25eb4d32d66bd4c080d6caa2b5e78c73beea3993db690137e1d6cb + size: 663 + sha256: 5a382966fdd8d5220b5791f3bff6db00d2ea29235e2716dadd52461b8a8beb97 original: - hackage: hpc-0.6.0.3@sha256:de3f7982345d315f1d7713df38b4f2cf09bd274f7d64dffec0cf2a0d9c8aab19,1185 + hackage: random-strings-0.1.1.0@sha256:935a7a23dab45411960df77636a29b44ce42b89eeb15f2b1e809d771491fa677,2517 - completed: - hackage: katip-datadog-0.1.0.0@sha256:4e72dca402b953bd34b7a744ad23eb90600a420adef67192c9702073564f1cae,1885 + hackage: semigroups-0.18.5@sha256:41ef9f5f183f66c519c5cddcb3fbfdbc9b67a2b7bfae7d81f91de9ff7367d8c6,5828 pantry-tree: - size: 415 - sha256: c3d816dcd90b113a246520c8069d3278ee77eacf0f45dd0eb77eb2f7c53d5b3b + size: 533 + sha256: 7fe152b45de8c6a929db10c68b0576e35f7054492c528e8aa10cb1af2fc80953 original: - hackage: katip-datadog-0.1.0.0 + hackage: semigroups-0.18.5@sha256:41ef9f5f183f66c519c5cddcb3fbfdbc9b67a2b7bfae7d81f91de9ff7367d8c6,5828 - completed: - hackage: prometheus-2.1.3@sha256:4fdf8602f7c74367cda182cf71dab108f78a86993b428bf96b61dd6c519b6f22,4296 + hackage: warp-3.2.28@sha256:b32fb8fed7ace4bd206fd897c388c00cdb915ec7e34ee61dc6397d518d9e651c,11186 pantry-tree: - size: 1559 - sha256: a8d0a0150abddf0d7b673fcb19ff2ef235d4005161826e1538ad802394c9fc0e + size: 4227 + sha256: a08eab2f15d6be431d00cd31a8b87a7e5ce87f203aad06916f9af0c673ec8a7d original: - hackage: prometheus-2.1.3 + hackage: warp-3.2.28 - completed: - cabal-file: - size: 1872 - sha256: b7f017686d9bfbcbb4914a89e10440d761f3aa771dfd9b85b4ebf3f14c0e1ebc name: avl-auth version: 0.1.0.0 git: https://github.com/oscoin/avl-auth @@ -145,78 +128,82 @@ packages: git: https://github.com/oscoin/avl-auth commit: dfc468845a82cdd7d759943b20853999bc026505 - completed: - cabal-file: - size: 5720 - sha256: 51545a2592f22d1bf612a2f55ca3af8b0083fb5c620c8996bc6d48f742d1faa1 name: proto3-suite - version: 0.4.0.0 + version: 0.4.0.2 git: https://github.com/awakesecurity/proto3-suite pantry-tree: - size: 4272 - sha256: c8dfec249b4db1d4f0e15332153ed539cb10343ae73345d8cdbf1cf09c714cfc - commit: 3f6dd6f612cf2eba3c05798926ff924b0d5ab4fa + size: 7180 + sha256: 5cfd7cb7c20e9ff29a113b66e35042eb955a507ddb33ef909e9a7e67ab70307b + commit: 45950a3860cbcb3f3177e9725dbdf460d6da9d45 original: git: https://github.com/awakesecurity/proto3-suite - commit: 3f6dd6f612cf2eba3c05798926ff924b0d5ab4fa + commit: 45950a3860cbcb3f3177e9725dbdf460d6da9d45 - completed: - cabal-file: - size: 1928 - sha256: 5e750211a8fdae75ffcdd0a70581ae635be5510b321924c5196ac44189fd1432 name: proto3-wire - version: 1.1.0 + version: 1.2.0 git: https://github.com/awakesecurity/proto3-wire pantry-tree: - size: 978 - sha256: d3a5d569e005d87e4eb343b150a1c4cbc455cc9833e7713efb937d66b6679b87 - commit: 23015cf6363d1962fde6bdff0de111f7ec59ab75 + size: 1759 + sha256: 2d3e47cf4d109a5184c8a5919f12e692fc43197b3cd011aabe8e11dacb6f9946 + commit: 5df56fe1ad26a18b1dfbb2a5b8d35b4c1ad63f53 original: git: https://github.com/awakesecurity/proto3-wire - commit: 23015cf6363d1962fde6bdff0de111f7ec59ab75 + commit: 5df56fe1ad26a18b1dfbb2a5b8d35b4c1ad63f53 - completed: - hackage: polysemy-1.2.3.0@sha256:d9cfa7942940c7c6d07d1f26ae70c4f1170f9bd6c331bdbe586e810fafc25f17,5878 + subdir: http2-client-grpc + name: http2-client-grpc + version: 0.8.0.0 + git: https://github.com/haskell-grpc-native/http2-grpc-haskell pantry-tree: - size: 3625 - sha256: a54b1b565848944e37a5533bd91e91ecb7cdfa21294ba599c13d015d354c4f39 + size: 454 + sha256: 855861e918e44f12cd1f592758456fcafd2fe533587b3e047d6451389c0b09af + commit: 496e92bc967eff02ac3698ba12ba2dfe38bc8b74 original: - hackage: polysemy-1.2.3.0 + subdir: http2-client-grpc + git: https://github.com/haskell-grpc-native/http2-grpc-haskell + commit: 496e92bc967eff02ac3698ba12ba2dfe38bc8b74 - completed: - hackage: polysemy-zoo-0.6.0.0@sha256:44595a96a37b9e33edb87c9f7ff79f8d10f6453d826bc9881b00d8988b69729a,3852 + name: tintin + version: 1.10.1 + git: https://github.com/lancelet/tintin pantry-tree: - size: 3012 - sha256: 9a8ddbf6c0a5ed2e254202c2990aae99dc4a66fa24949622a123c48795ec6547 + size: 2387 + sha256: ae9056d78d03e379b9164285f2cb10cdfc8f69980438af630564b08fc74b108e + commit: 9493e752fdebff877292872d86de3a46c6e257bd original: - hackage: polysemy-zoo-0.6.0.0 + git: https://github.com/lancelet/tintin + commit: 9493e752fdebff877292872d86de3a46c6e257bd - completed: - hackage: http2-client-0.9.0.0@sha256:b8885c89adcc8b9d4ebb9abf6ae0ac6336e3fdf947a2b1f2b95c4e2c8c4acf01,2685 + hackage: inliterate-0.1.0@sha256:61b17ab3cef803512c264e27e463390b47af59d7d2b3a2a89bea2eac0cf84266,1853 pantry-tree: - size: 853 - sha256: d7a1be66eb14e84cfedd87e8363e406abb244bb74b742e8f0141efce27545008 + size: 618 + sha256: 2cea999a63449b913f6186c3b8b276050e7a1a7195f5e94ac94fa4007da36558 original: - hackage: http2-client-0.9.0.0 + hackage: inliterate-0.1.0@sha256:61b17ab3cef803512c264e27e463390b47af59d7d2b3a2a89bea2eac0cf84266,1853 - completed: - hackage: http2-grpc-types-0.4.0.0@sha256:ffb02152397186dbc925358498b5c005b982ef54f191f4465f9c7947afd7f9d4,1354 + hackage: megaparsec-7.0.5@sha256:45e1f1348fab2783646fdb4d9e6097568981a740951c7356d36d794e2baba305,3902 pantry-tree: - size: 405 - sha256: e5025945fee56509538efe6377dd1930189be2bf908bbce428555aa5efab51ff + size: 1428 + sha256: 1f8baf6e07326f8c8a2dd31de6b2860427f158b0892c52ba5fe9ffeb6cd3bf7f original: - hackage: http2-grpc-types-0.4.0.0 + hackage: megaparsec-7.0.5@sha256:45e1f1348fab2783646fdb4d9e6097568981a740951c7356d36d794e2baba305,3902 - completed: - cabal-file: - size: 1910 - sha256: 414ea9a90a92d1e0e96b3a9892c856c86a606f5464706963422fdb235cf84d13 - name: http2-client-grpc - version: 0.7.0.1 - git: https://github.com/lucasdicioccio/http2-client-grpc + hackage: cheapskate-0.1.1.2@sha256:b8ae3cbb826610ea45e6840b7fde0af2c2ea6690cb311edfe9683f61c0a50d96,3072 + pantry-tree: + size: 866 + sha256: f3d8b45723bf9851163e50b900b5397e22dca07af70c2c6145a5aea34e3a0e49 + original: + hackage: cheapskate-0.1.1.2@sha256:b8ae3cbb826610ea45e6840b7fde0af2c2ea6690cb311edfe9683f61c0a50d96,3072 +- completed: + hackage: require-0.4.8@sha256:7ff9ca53134bf2d7ee4f6be44b70dd8284388bbe4319fd34d33b0d8cabeed7c8,3623 pantry-tree: - size: 625 - sha256: 92a9ff8a51c40678a839a92919add1744ce1da786de01747baaf02679052ea4e - commit: 6a1aacfc18e312ef57552133f13dd1024c178706 + size: 981 + sha256: 34e22e29b2817a66cedcbcf11683d60c1a80a279df9ae528df22eceb43671a38 original: - git: https://github.com/lucasdicioccio/http2-client-grpc - commit: 6a1aacfc18e312ef57552133f13dd1024c178706 + hackage: require-0.4.8@sha256:7ff9ca53134bf2d7ee4f6be44b70dd8284388bbe4319fd34d33b0d8cabeed7c8,3623 snapshots: - completed: - size: 524786 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/14/11.yaml - sha256: 088bb91b545839510a41ae92fa5feb36779ef3529571a42bd12b9f51eb89ded3 - original: lts-14.11 + size: 493124 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/15/10.yaml + sha256: 48bc6d1d59224a5166265ef6cdda6a512f29ecc8ef7331826312b82377e89507 + original: lts-15.10