packages feed

haskoin-store-data 0.32.0 → 0.32.1

raw patch · 3 files changed

+11/−92 lines, 3 filesdep ~haskoin-store-data

Dependency ranges changed: haskoin-store-data

Files

haskoin-store-data.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 920370ff98f12e2262956b78cfaae0d854bc1fd219a429bd362da3ff98898740+-- hash: 6001f8bd564ca8781d144bcface158f883a2ad9d990d0c00ff40c34e6c8f2b36  name:           haskoin-store-data-version:        0.32.0+version:        0.32.1 synopsis:       Data for Haskoin Store description:    Please see the README on GitHub at <https://github.com/haskoin/haskoin-store#readme> category:       Bitcoin, Finance, Network@@ -74,7 +74,7 @@     , deepseq >=1.4.4.0     , hashable >=1.3.0.0     , haskoin-core >=0.13.6-    , haskoin-store-data ==0.32.0+    , haskoin-store-data ==0.32.1     , hspec >=2.7.1     , http-client >=0.6.4.1     , http-types >=0.12.3
src/Haskoin/Store/WebCommon.hs view
@@ -359,14 +359,14 @@  instance Param Address where     proxyLabel = const "address"-    encodeParam net a = (:[]) <$> addrToString net a-    parseParam net [a] = stringToAddr net a+    encodeParam net a = (:[]) <$> addrToText net a+    parseParam net [a] = textToAddr net a     parseParam _ _     = Nothing  instance Param [Address] where     proxyLabel = const "addresses"-    encodeParam = mapM . addrToString-    parseParam = mapM . stringToAddr+    encodeParam = mapM . addrToText+    parseParam = mapM . textToAddr  data StartParam = StartParamHash     { startParamHash :: Hash256
test/Haskoin/Store/DataSpec.hs view
@@ -7,41 +7,16 @@     ( spec     ) where -import           Control.Monad           (forM_, (<=<))-import           Data.Aeson              (Encoding, FromJSON (..), Value)-import qualified Data.Aeson              as A-import           Data.Aeson.Encoding     (encodingToLazyByteString)-import           Data.Aeson.Types        (Parser, parseMaybe)+import           Control.Monad           (forM_)+import           Data.Aeson              (FromJSON (..)) import qualified Data.ByteString.Short   as BSS-import           Data.Map.Strict         (singleton)-import           Data.Proxy-import qualified Data.Serialize          as S import           Data.String.Conversions (cs)-import qualified Data.Typeable           as T import           Haskoin import           Haskoin.Store.Data import           Haskoin.Util.Arbitrary-import           Test.Hspec              (Spec, describe, shouldBe,-                                          shouldSatisfy)-import           Test.Hspec.QuickCheck   (prop)+import           Test.Hspec              (Spec, describe) import           Test.QuickCheck -data SerialBox =-    forall a. (Show a, Eq a, T.Typeable a, S.Serialize a) =>-              SerialBox (Gen a)--data JsonBox =-    forall a. (Show a, Eq a, T.Typeable a, A.ToJSON a, A.FromJSON a) =>-              JsonBox (Gen a)--data NetBox =-    forall a. (Show a, Eq a, T.Typeable a, Arbitrary a) =>-              NetBox ( Network -> a -> Value-                     , Network -> a -> Encoding-                     , Network -> Value -> Parser a-                     , Gen (Network, a)-                     )- serialVals :: [SerialBox] serialVals =     [ SerialBox (arbitrary :: Gen DeriveType)@@ -131,62 +106,6 @@     describe "Data.Aeson Encoding with Network" $         forM_ netVals $ \(NetBox (j,e,p,g)) -> testNetJson j e p g -testSerial :: (Eq a, Show a, T.Typeable a, S.Serialize a) => Gen a -> Spec-testSerial gen =-    prop ("Data.Serialize encoding/decoding identity for " <> name) $-    forAll gen $ \x -> (S.decode . S.encode) x `shouldBe` Right x-  where-    name = show $ T.typeRep $ proxy gen-    proxy :: Gen a -> Proxy a-    proxy = const Proxy--testJson ::-       (Eq a, Show a, T.Typeable a, A.ToJSON a, A.FromJSON a) => Gen a -> Spec-testJson gen = do-    prop ("Data.Aeson toJSON/fromJSON identity for " <> name) $-        forAll gen (`shouldSatisfy` jsonID)-    prop ("Data.Aeson toEncoding/fromJSON identity for " <> name) $-        forAll gen (`shouldSatisfy` encodingID)-  where-    name = show $ T.typeRep $ proxy gen-    proxy :: Gen a -> Proxy a-    proxy = const Proxy-    jsonID x =-        (A.fromJSON . A.toJSON) (singleton ("object" :: String) x) ==-        A.Success (singleton ("object" :: String) x)-    encodingID x =-        (A.decode . encodingToLazyByteString . A.toEncoding)-            (singleton ("object" :: String) x) ==-        Just (singleton ("object" :: String) x)--testNetJson ::-       (Eq a, Show a, T.Typeable a, Arbitrary a)-    => (Network -> a -> Value)-    -> (Network -> a -> Encoding)-    -> (Network -> Value -> Parser a)-    -> Gen (Network, a)-    -> Spec-testNetJson j e p g = do-    prop ("Data.Aeson toJSON/fromJSON identity (with network) for " <> name) $-        forAll g $ \(net, x) ->-            dec net (encVal net x) `shouldBe` Just x-    prop ("Data.Aeson toEncoding/fromJSON identity (with network) for " <> name) $-        forAll g $ \(net, x) ->-            dec net (encEnc net x) `shouldBe` Just x-  where-    encVal net = A.encode . j net-    encEnc net = encodingToLazyByteString . e net-    dec net = parseMaybe (p net) <=< A.decode-    name = show $ T.typeRep $ proxy j-    proxy :: (Network -> a -> Value) -> Proxy a-    proxy = const Proxy--arbitraryNetData :: Arbitrary a => Gen (Network, a)-arbitraryNetData = do-    net <- arbitraryNetwork-    x <- arbitrary-    return (net, x)- instance Arbitrary BlockRef where     arbitrary =         oneof [BlockRef <$> arbitrary <*> arbitrary, MemRef <$> arbitrary]@@ -397,7 +316,7 @@     arbitrary =         oneof         [ return ThingNotFound-        , return ServerError    +        , return ServerError         , return BadRequest         , UserError <$> arbitrary         , StringError <$> arbitrary