bitx-bitcoin 0.7.0.0 → 0.7.0.1
raw patch · 8 files changed
+32/−13 lines, 8 files
Files
- CHANGES +5/−2
- bitx-bitcoin.cabal +1/−1
- src/Network/Bitcoin/BitX/Types.hs +3/−0
- src/Network/Bitcoin/BitX/Types/Internal.hs +4/−0
- test/Network/Bitcoin/BitX/Spec/Specs/AesonRecordSpec.hs +6/−3
- test/Network/Bitcoin/BitX/Spec/Specs/JsonSpec.hs +8/−4
- test/Network/Bitcoin/BitX/Spec/Specs/LensSpec.hs +4/−2
- test/Network/Bitcoin/BitX/Spec/Specs/PrivateSpec.hs +1/−1
CHANGES view
@@ -1,3 +1,6 @@+v0.7.0.1+* Added new "completed_timestamp" field to private order types.+ v0.7.0.0 * Added new "since" option to public trades' endpoint. BREAKING CHANGE. * Added is_buy field for trade record.@@ -29,10 +32,10 @@ * Implemented a (naive) mechanism to work around nginx rate limiting. v0.2.0.2-* Added Naigerian Naira.+* Added Nigerian Naira. v0.2.0.1-* Record library idependency needs upper bound.+* Record library dependency needs upper bound. v0.2.0.0 * Replaced Decimal with Scientific. BREAKING CHANGE.
bitx-bitcoin.cabal view
@@ -1,5 +1,5 @@ name: bitx-bitcoin-version: 0.7.0.0+version: 0.7.0.1 synopsis: A Haskell library for working with the BitX bitcoin exchange. description:
src/Network/Bitcoin/BitX/Types.hs view
@@ -93,6 +93,7 @@ HasCounter(..), HasCreationTimestamp(..), HasExpirationTimestamp(..),+ HasCompletedTimestamp(..), HasFeeBase(..), HasFeeCounter(..), HasLimitPrice(..),@@ -272,6 +273,7 @@ privateOrderCounter :: Scientific, privateOrderCreationTimestamp :: UTCTime, privateOrderExpirationTimestamp :: UTCTime,+ privateOrderCompletedTimestamp :: UTCTime, privateOrderFeeBase :: Scientific, privateOrderFeeCounter :: Scientific, privateOrderLimitPrice :: Int,@@ -290,6 +292,7 @@ privateOrderWithTradesCounter :: Scientific, privateOrderWithTradesCreationTimestamp :: UTCTime, privateOrderWithTradesExpirationTimestamp :: UTCTime,+ privateOrderWithTradesCompletedTimestamp :: UTCTime, privateOrderWithTradesFeeBase :: Scientific, privateOrderWithTradesFeeCounter :: Scientific, privateOrderWithTradesLimitPrice :: Int,
src/Network/Bitcoin/BitX/Types/Internal.hs view
@@ -275,6 +275,7 @@ , privateOrder'counter :: QuotedScientific , privateOrder'creation_timestamp :: TimestampMS , privateOrder'expiration_timestamp :: TimestampMS+ , privateOrder'completed_timestamp :: TimestampMS , privateOrder'fee_base :: QuotedScientific , privateOrder'fee_counter :: QuotedScientific , privateOrder'limit_price :: QuotedInt@@ -295,6 +296,7 @@ privateOrderCounter = qsToScientific privateOrder'counter, privateOrderCreationTimestamp = tsmsToUTCTime privateOrder'creation_timestamp, privateOrderExpirationTimestamp = tsmsToUTCTime privateOrder'expiration_timestamp,+ privateOrderCompletedTimestamp = tsmsToUTCTime privateOrder'completed_timestamp, privateOrderFeeBase = qsToScientific privateOrder'fee_base, privateOrderFeeCounter = qsToScientific privateOrder'fee_counter, privateOrderLimitPrice = qiToInt privateOrder'limit_price,@@ -366,6 +368,7 @@ , privateOrderWithTrades'counter :: QuotedScientific , privateOrderWithTrades'creation_timestamp :: TimestampMS , privateOrderWithTrades'expiration_timestamp :: TimestampMS+ , privateOrderWithTrades'completed_timestamp :: TimestampMS , privateOrderWithTrades'fee_base :: QuotedScientific , privateOrderWithTrades'fee_counter :: QuotedScientific , privateOrderWithTrades'limit_price :: QuotedInt@@ -387,6 +390,7 @@ privateOrderWithTradesCounter = qsToScientific privateOrderWithTrades'counter, privateOrderWithTradesCreationTimestamp = tsmsToUTCTime privateOrderWithTrades'creation_timestamp, privateOrderWithTradesExpirationTimestamp = tsmsToUTCTime privateOrderWithTrades'expiration_timestamp,+ privateOrderWithTradesCompletedTimestamp = tsmsToUTCTime privateOrderWithTrades'completed_timestamp, privateOrderWithTradesFeeBase = qsToScientific privateOrderWithTrades'fee_base, privateOrderWithTradesFeeCounter = qsToScientific privateOrderWithTrades'fee_counter, privateOrderWithTradesLimitPrice = qiToInt privateOrderWithTrades'limit_price,
test/Network/Bitcoin/BitX/Spec/Specs/AesonRecordSpec.hs view
@@ -73,7 +73,7 @@ it "PrivateOrder is parsed properly" $ recordAesCheck "{\"base\":\"568.7\", \"counter\":3764.2,\"creation_timestamp\":478873467, \- \ \"expiration_timestamp\":8768834222, \"fee_base\":\"3687.3\", \"fee_counter\":12.9,\+ \ \"expiration_timestamp\":8768834222, \"completed_timestamp\":6511257825, \"fee_base\":\"3687.3\", \"fee_counter\":12.9,\ \ \"limit_price\":765.00,\"limit_volume\":55.2,\"order_id\":\"83YG\",\"pair\":\"NADXBT\",\ \ \"state\":\"COMPLETE\",\"type\":\"BID\"}" PrivateOrder@@ -81,6 +81,7 @@ privateOrderCounter = 3764.2, privateOrderCreationTimestamp = posixSecondsToUTCTime 478873.467, privateOrderExpirationTimestamp = posixSecondsToUTCTime 8768834.222,+ privateOrderCompletedTimestamp = posixSecondsToUTCTime 6511257.825, privateOrderFeeBase = 3687.3, privateOrderFeeCounter = 12.9, privateOrderLimitPrice = 765,@@ -92,7 +93,7 @@ it "PrivateOrders is parsed properly" $ recordAesCheck "{\"orders\":[{\"base\":\"568.7\", \"counter\":3764.2,\"creation_timestamp\":478873467, \- \ \"expiration_timestamp\":8768834222, \"fee_base\":\"3687.3\", \"fee_counter\":12.9,\+ \ \"expiration_timestamp\":8768834222, \"completed_timestamp\":6511257825, \"fee_base\":\"3687.3\", \"fee_counter\":12.9,\ \ \"limit_price\":765.00,\"limit_volume\":55.2,\"order_id\":\"83YG\",\"pair\":\"NADXBT\",\ \ \"state\":\"COMPLETE\",\"type\":\"BID\"}]}" [privateOrderInner]@@ -112,7 +113,7 @@ it "PrivateOrderWithTrades is parsed properly" $ recordAesCheck "{\"base\":\"568.7\", \"counter\":3764.2,\"creation_timestamp\":478873467, \- \ \"expiration_timestamp\":8768834222, \"fee_base\":\"3687.3\", \"fee_counter\":12.9,\+ \ \"expiration_timestamp\":8768834222, \"completed_timestamp\":6511257825, \"fee_base\":\"3687.3\", \"fee_counter\":12.9,\ \ \"limit_price\":765.00,\"limit_volume\":55.2,\"order_id\":\"83YG\",\"pair\":\"NADXBT\",\ \ \"state\":\"COMPLETE\",\"type\":\"BID\", \"trades\":[{\"timestamp\":1431811395699, \ \ \"volume\":\"6754.09\",\"price\":\"5327.00\",\"is_buy\":false}]}"@@ -121,6 +122,7 @@ privateOrderWithTradesCounter = 3764.2, privateOrderWithTradesCreationTimestamp = posixSecondsToUTCTime 478873.467, privateOrderWithTradesExpirationTimestamp = posixSecondsToUTCTime 8768834.222,+ privateOrderWithTradesCompletedTimestamp = posixSecondsToUTCTime 6511257.825, privateOrderWithTradesFeeBase = 3687.3, privateOrderWithTradesFeeCounter = 12.9, privateOrderWithTradesLimitPrice = 765,@@ -194,6 +196,7 @@ privateOrderCounter = 3764.2, privateOrderCreationTimestamp = posixSecondsToUTCTime 478873.467, privateOrderExpirationTimestamp = posixSecondsToUTCTime 8768834.222,+ privateOrderCompletedTimestamp = posixSecondsToUTCTime 6511257.825, privateOrderFeeBase = 3687.3, privateOrderFeeCounter = 12.9, privateOrderLimitPrice = 765,
test/Network/Bitcoin/BitX/Spec/Specs/JsonSpec.hs view
@@ -40,7 +40,7 @@ it "OrderType BUY is parsed properly" $ recordAesCheck "{\"base\":\"568.7\", \"counter\":3764.2,\"creation_timestamp\":478873467, \- \\"expiration_timestamp\":8768834222, \"fee_base\":\"3687.3\", \"fee_counter\":12.9,\+ \\"expiration_timestamp\":8768834222, \"completed_timestamp\":6511257825, \"fee_base\":\"3687.3\", \"fee_counter\":12.9,\ \\"limit_price\":765.00,\"limit_volume\":55.2,\"order_id\":\"83YG\",\"pair\":\"NADXBT\",\ \\"state\":\"COMPLETE\",\"type\":\"BUY\"}" PrivateOrder@@ -48,6 +48,7 @@ privateOrderCounter = 3764.2, privateOrderCreationTimestamp = posixSecondsToUTCTime 478873.467, privateOrderExpirationTimestamp = posixSecondsToUTCTime 8768834.222,+ privateOrderCompletedTimestamp = posixSecondsToUTCTime 6511257.825, privateOrderFeeBase = 3687.3, privateOrderFeeCounter = 12.9, privateOrderLimitPrice = 765,@@ -59,7 +60,7 @@ it "OrderType BID is parsed properly" $ recordAesCheck "{\"base\":\"568.7\", \"counter\":3764.2,\"creation_timestamp\":478873467, \- \\"expiration_timestamp\":8768834222, \"fee_base\":\"3687.3\", \"fee_counter\":12.9,\+ \\"expiration_timestamp\":8768834222, \"completed_timestamp\":6511257825, \"fee_base\":\"3687.3\", \"fee_counter\":12.9,\ \\"limit_price\":765.00,\"limit_volume\":55.2,\"order_id\":\"83YG\",\"pair\":\"NADXBT\",\ \\"state\":\"COMPLETE\",\"type\":\"BID\"}" PrivateOrder@@ -67,6 +68,7 @@ privateOrderCounter = 3764.2, privateOrderCreationTimestamp = posixSecondsToUTCTime 478873.467, privateOrderExpirationTimestamp = posixSecondsToUTCTime 8768834.222,+ privateOrderCompletedTimestamp = posixSecondsToUTCTime 6511257.825, privateOrderFeeBase = 3687.3, privateOrderFeeCounter = 12.9, privateOrderLimitPrice = 765,@@ -78,7 +80,7 @@ it "OrderType ASK is parsed properly" $ recordAesCheck "{\"base\":\"568.7\", \"counter\":3764.2,\"creation_timestamp\":478873467, \- \\"expiration_timestamp\":8768834222, \"fee_base\":\"3687.3\", \"fee_counter\":12.9,\+ \\"expiration_timestamp\":8768834222, \"completed_timestamp\":6511257825, \"fee_base\":\"3687.3\", \"fee_counter\":12.9,\ \\"limit_price\":765.00,\"limit_volume\":55.2,\"order_id\":\"83YG\",\"pair\":\"NADXBT\",\ \\"state\":\"COMPLETE\",\"type\":\"ASK\"}" PrivateOrder@@ -86,6 +88,7 @@ privateOrderCounter = 3764.2, privateOrderCreationTimestamp = posixSecondsToUTCTime 478873.467, privateOrderExpirationTimestamp = posixSecondsToUTCTime 8768834.222,+ privateOrderCompletedTimestamp = posixSecondsToUTCTime 6511257.825, privateOrderFeeBase = 3687.3, privateOrderFeeCounter = 12.9, privateOrderLimitPrice = 765,@@ -97,7 +100,7 @@ it "OrderType SELL is parsed properly" $ recordAesCheck "{\"base\":\"568.7\", \"counter\":3764.2,\"creation_timestamp\":478873467, \- \\"expiration_timestamp\":8768834222, \"fee_base\":\"3687.3\", \"fee_counter\":12.9,\+ \\"expiration_timestamp\":8768834222, \"completed_timestamp\":6511257825, \"fee_base\":\"3687.3\", \"fee_counter\":12.9,\ \\"limit_price\":765.00,\"limit_volume\":55.2,\"order_id\":\"83YG\",\"pair\":\"NADXBT\",\ \\"state\":\"COMPLETE\",\"type\":\"SELL\"}" PrivateOrder@@ -105,6 +108,7 @@ privateOrderCounter = 3764.2, privateOrderCreationTimestamp = posixSecondsToUTCTime 478873.467, privateOrderExpirationTimestamp = posixSecondsToUTCTime 8768834.222,+ privateOrderCompletedTimestamp = posixSecondsToUTCTime 6511257.825, privateOrderFeeBase = 3687.3, privateOrderFeeCounter = 12.9, privateOrderLimitPrice = 765,
test/Network/Bitcoin/BitX/Spec/Specs/LensSpec.hs view
@@ -72,7 +72,7 @@ _privateOrder :: Maybe Int _privateOrder = do- let x = BitX.PrivateOrder 0 0 (posixSecondsToUTCTime 0) (posixSecondsToUTCTime 0) 0 0 0 0 "" XBTZAR PENDING ASK+ let x = BitX.PrivateOrder 0 0 (posixSecondsToUTCTime 0) (posixSecondsToUTCTime 0) (posixSecondsToUTCTime 0) 0 0 0 0 "" XBTZAR PENDING ASK let _ = x ^. BitX.base let _ = x ^. BitX.counter let _ = x ^. BitX.creationTimestamp@@ -85,11 +85,12 @@ let _ = x ^. BitX.state let _ = x ^. BitX.orderType let _ = x ^. BitX.expirationTimestamp+ let _ = x ^. BitX.completedTimestamp Nothing _privateOrderWithTrades :: Maybe Int _privateOrderWithTrades = do- let x = BitX.PrivateOrderWithTrades 0 0 (posixSecondsToUTCTime 0) (posixSecondsToUTCTime 0) 0 0 0 0 "" XBTZAR PENDING ASK [BitX.Trade (posixSecondsToUTCTime 0) 0 0 False]+ let x = BitX.PrivateOrderWithTrades 0 0 (posixSecondsToUTCTime 0) (posixSecondsToUTCTime 0) (posixSecondsToUTCTime 0) 0 0 0 0 "" XBTZAR PENDING ASK [BitX.Trade (posixSecondsToUTCTime 0) 0 0 False] let _ = x ^. BitX.base let _ = x ^. BitX.counter let _ = x ^. BitX.creationTimestamp@@ -102,6 +103,7 @@ let _ = x ^. BitX.state let _ = x ^. BitX.orderType let _ = x ^. BitX.expirationTimestamp+ let _ = x ^. BitX.completedTimestamp let _ = x ^. BitX.trades Nothing
test/Network/Bitcoin/BitX/Spec/Specs/PrivateSpec.hs view
@@ -45,7 +45,7 @@ it "API key file not found -- skipping private tests" $ True `shouldBe` True -connectsAndParsesOkay :: Show recd => IO (BitXAPIResponse recd) -> Bool+connectsAndParsesOkay :: IO (BitXAPIResponse recd) -> Bool connectsAndParsesOkay = isValidResponse . unsafePerformIO --connectsAndParsesOkay k = isValidResponse $ tracePretty (unsafePerformIO k)