Hello community, here is the log from the commit of package ghc-bitx-bitcoin for openSUSE:Factory checked in at 2017-05-10 20:47:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-bitx-bitcoin (Old) and /work/SRC/openSUSE:Factory/.ghc-bitx-bitcoin.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-bitx-bitcoin" Wed May 10 20:47:56 2017 rev:2 rq:489352 version:0.11.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-bitx-bitcoin/ghc-bitx-bitcoin.changes 2017-04-12 18:05:18.934438330 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-bitx-bitcoin.new/ghc-bitx-bitcoin.changes 2017-05-10 20:47:57.820469425 +0200 @@ -1,0 +2,5 @@ +Mon Mar 27 12:37:27 UTC 2017 - [email protected] + +- Update to version 0.11.0.1 with cabal2obs. + +------------------------------------------------------------------- Old: ---- bitx-bitcoin-0.11.0.0.tar.gz New: ---- bitx-bitcoin-0.11.0.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-bitx-bitcoin.spec ++++++ --- /var/tmp/diff_new_pack.I03bYp/_old 2017-05-10 20:47:58.580362199 +0200 +++ /var/tmp/diff_new_pack.I03bYp/_new 2017-05-10 20:47:58.588361070 +0200 @@ -19,7 +19,7 @@ %global pkg_name bitx-bitcoin %bcond_with tests Name: ghc-%{pkg_name} -Version: 0.11.0.0 +Version: 0.11.0.1 Release: 0 Summary: A Haskell library for working with the BitX bitcoin exchange License: BSD-3-Clause ++++++ bitx-bitcoin-0.11.0.0.tar.gz -> bitx-bitcoin-0.11.0.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bitx-bitcoin-0.11.0.0/CHANGES new/bitx-bitcoin-0.11.0.1/CHANGES --- old/bitx-bitcoin-0.11.0.0/CHANGES 2016-11-12 21:45:50.000000000 +0100 +++ new/bitx-bitcoin-0.11.0.1/CHANGES 2017-03-13 10:17:21.000000000 +0100 @@ -1,3 +1,6 @@ +v0.11.0.1 +* Added new fee_info endpoint. + v0.11.0.0 * The BitX API no longer gives trades when returning private orders. BREAKING CHANGE. * Due to the above change, a new function -- getAllTrades -- has been added to the private order API. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bitx-bitcoin-0.11.0.0/bitx-bitcoin.cabal new/bitx-bitcoin-0.11.0.1/bitx-bitcoin.cabal --- old/bitx-bitcoin-0.11.0.0/bitx-bitcoin.cabal 2016-11-13 11:53:47.000000000 +0100 +++ new/bitx-bitcoin-0.11.0.1/bitx-bitcoin.cabal 2017-03-13 08:57:29.000000000 +0100 @@ -1,5 +1,5 @@ name: bitx-bitcoin -version: 0.11.0.0 +version: 0.11.0.1 synopsis: A Haskell library for working with the BitX bitcoin exchange. description: @@ -50,6 +50,7 @@ -- Network.Bitcoin.BitX.Private.Auth Network.Bitcoin.BitX.Private.Order Network.Bitcoin.BitX.Private.Withdrawal + Network.Bitcoin.BitX.Private.Fees Network.Bitcoin.BitX.Response ghc-options: -Wall diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bitx-bitcoin-0.11.0.0/src/Network/Bitcoin/BitX/Private/Fees.hs new/bitx-bitcoin-0.11.0.1/src/Network/Bitcoin/BitX/Private/Fees.hs --- old/bitx-bitcoin-0.11.0.0/src/Network/Bitcoin/BitX/Private/Fees.hs 1970-01-01 01:00:00.000000000 +0100 +++ new/bitx-bitcoin-0.11.0.1/src/Network/Bitcoin/BitX/Private/Fees.hs 2017-03-13 08:55:51.000000000 +0100 @@ -0,0 +1,37 @@ +{-# LANGUAGE OverloadedStrings #-} + +----------------------------------------------------------------------------- +-- | +-- Module : Network.Bitcoin.BitX.Private.Fees +-- Copyright : 2017 Tebello Thejane +-- License : BSD3 +-- +-- Maintainer : Tebello Thejane <[email protected]> +-- Stability : Experimental +-- Portability : non-portable (GHC Extensions) +-- +-- Retrieving fee information. +-- +-- The BitX fee structure is cummulative-volume-based. The sole endpoint in +-- this packagereturns the user's current fee structure and 30-day volume. +-- +----------------------------------------------------------------------------- + +module Network.Bitcoin.BitX.Private.Fees + ( + getFeeInfo + ) where + +import Network.Bitcoin.BitX.Internal +import Network.Bitcoin.BitX.Types +import Data.Text as Txt +import Network.Bitcoin.BitX.Response +import Data.Monoid ((<>)) + +{- | Get fee structure and 30-day volume (as of midnight) for a currency pair + +@Perm_R_Orders@ permission required. +-} + +getFeeInfo :: BitXAuth -> CcyPair -> IO (BitXAPIResponse FeeInfo) +getFeeInfo auth cpair = simpleBitXGetAuth_ auth ("fee_info?pair=" <> Txt.pack (show cpair)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bitx-bitcoin-0.11.0.0/src/Network/Bitcoin/BitX/Private.hs new/bitx-bitcoin-0.11.0.1/src/Network/Bitcoin/BitX/Private.hs --- old/bitx-bitcoin-0.11.0.0/src/Network/Bitcoin/BitX/Private.hs 2016-11-09 07:54:07.000000000 +0100 +++ new/bitx-bitcoin-0.11.0.1/src/Network/Bitcoin/BitX/Private.hs 2017-03-13 08:52:50.000000000 +0100 @@ -75,7 +75,8 @@ module Network.Bitcoin.BitX.Private.Order, module Network.Bitcoin.BitX.Private.Quote, --module Network.Bitcoin.BitX.Private.Auth - module Network.Bitcoin.BitX.Private.Withdrawal + module Network.Bitcoin.BitX.Private.Withdrawal, + module Network.Bitcoin.BitX.Private.Fees ) where import Network.Bitcoin.BitX.Internal @@ -88,6 +89,7 @@ --import Network.Bitcoin.BitX.Private.Auth import Network.Bitcoin.BitX.Private.Quote import Network.Bitcoin.BitX.Private.Withdrawal +import Network.Bitcoin.BitX.Private.Fees import Data.Monoid ((<>)) {-# ANN module ("HLint: ignore Use import/export shortcut" :: String) #-} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bitx-bitcoin-0.11.0.0/src/Network/Bitcoin/BitX/Types/Internal.hs new/bitx-bitcoin-0.11.0.1/src/Network/Bitcoin/BitX/Types/Internal.hs --- old/bitx-bitcoin-0.11.0.0/src/Network/Bitcoin/BitX/Types/Internal.hs 2016-11-12 19:42:21.000000000 +0100 +++ new/bitx-bitcoin-0.11.0.1/src/Network/Bitcoin/BitX/Types/Internal.hs 2017-03-13 08:44:05.000000000 +0100 @@ -668,3 +668,21 @@ type Aes [Types.PrivateTrade] = PrivateTrades_ aesToRec PrivateTrades_ {..} = map aesToRec privateTrades'trades + +-------------------------------------------- FeeInfo type ------------------------------------------- + +data FeeInfo_ = FeeInfo_ + { feeInfo'maker_fee :: QuotedScientific + , feeInfo'taker_fee :: QuotedScientific + , feeInfo'thirty_day_volume :: QuotedScientific + } + +$(AesTH.deriveFromJSON AesTH.defaultOptions{AesTH.fieldLabelModifier = last . splitOn "'"} + ''FeeInfo_) + +instance BitXAesRecordConvert Types.FeeInfo where + type Aes Types.FeeInfo = FeeInfo_ + aesToRec FeeInfo_ {..} = + Types.FeeInfo {feeInfoMakerFee = qsToScientific feeInfo'maker_fee, + feeInfoTakerFee = qsToScientific feeInfo'taker_fee, + feeInfoThirtyDayVolume = qsToScientific feeInfo'thirty_day_volume} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bitx-bitcoin-0.11.0.0/src/Network/Bitcoin/BitX/Types.hs new/bitx-bitcoin-0.11.0.1/src/Network/Bitcoin/BitX/Types.hs --- old/bitx-bitcoin-0.11.0.0/src/Network/Bitcoin/BitX/Types.hs 2016-11-13 11:15:22.000000000 +0100 +++ new/bitx-bitcoin-0.11.0.1/src/Network/Bitcoin/BitX/Types.hs 2017-03-13 08:38:10.000000000 +0100 @@ -49,6 +49,7 @@ Transaction(..), Account(..), PrivateTrade(..), + FeeInfo(..), -- | Convenient constructors for records which serve as input parameters to functions. These are not -- completely safe (since you can forget to set a field and the Haskell compiler won't notice), @@ -128,7 +129,10 @@ HasIsBuy(..), HasStatus(..), HasBeneficiaryId(..), - HasOrderId(..) + HasOrderId(..), + HasMakerFee(..), + HasTakerFee(..), + HasThirtyDayVolume(..) ) where import Data.Aeson (FromJSON(..)) @@ -502,6 +506,15 @@ makeFields ''PrivateTrade +-- | Fee information +data FeeInfo = FeeInfo { + feeInfoMakerFee :: Scientific, + feeInfoTakerFee :: Scientific, + feeInfoThirtyDayVolume :: Scientific + } deriving (Eq, Show, Generic, Data, Typeable, Ord) + +makeFields ''FeeInfo + instance FromJSON CcyPair instance FromJSON Asset diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bitx-bitcoin-0.11.0.0/src/Network/Bitcoin/BitX.hs new/bitx-bitcoin-0.11.0.1/src/Network/Bitcoin/BitX.hs --- old/bitx-bitcoin-0.11.0.0/src/Network/Bitcoin/BitX.hs 2016-08-28 14:40:53.000000000 +0200 +++ new/bitx-bitcoin-0.11.0.1/src/Network/Bitcoin/BitX.hs 2017-03-13 08:55:05.000000000 +0100 @@ -23,6 +23,7 @@ --module Network.Bitcoin.BitX.Private.Auth, module Network.Bitcoin.BitX.Private.Order, module Network.Bitcoin.BitX.Private.Withdrawal, + module Network.Bitcoin.BitX.Private.Fees, module Network.Bitcoin.BitX.Response, BitXAesRecordConvert(..), POSTEncodeable(..) @@ -36,6 +37,7 @@ --import Network.Bitcoin.BitX.Private.Auth import Network.Bitcoin.BitX.Private.Order import Network.Bitcoin.BitX.Private.Withdrawal +import Network.Bitcoin.BitX.Private.Fees import Network.Bitcoin.BitX.Types.Internal import Network.Bitcoin.BitX.Response diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bitx-bitcoin-0.11.0.0/test/Network/Bitcoin/BitX/Spec/Specs/AesonRecordSpec.hs new/bitx-bitcoin-0.11.0.1/test/Network/Bitcoin/BitX/Spec/Specs/AesonRecordSpec.hs --- old/bitx-bitcoin-0.11.0.0/test/Network/Bitcoin/BitX/Spec/Specs/AesonRecordSpec.hs 2016-11-13 10:50:24.000000000 +0100 +++ new/bitx-bitcoin-0.11.0.1/test/Network/Bitcoin/BitX/Spec/Specs/AesonRecordSpec.hs 2017-03-13 08:47:38.000000000 +0100 @@ -179,6 +179,13 @@ \ \"is_buy\": false, \"order_id\": \"BXMC2CJ7HNB88U4\", \"pair\": \"XBTZAR\", \"price\": \"10491.00\", \ \ \"timestamp\": 1467138492909, \"type\": \"BID\", \"volume\": \"0.147741\" }]}" [privateTradeInner] + it "FeeInfo is parsed properly" $ + recordAesCheck + "{\"maker_fee\": \"0.00\", \"taker_fee\": \"0.10\", \"thirty_day_volume\": \"0.894342\"}" + FeeInfo + {feeInfoMakerFee = 0, + feeInfoTakerFee = 0.1, + feeInfoThirtyDayVolume = 0.894342} tickerInner :: Ticker tickerInner = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bitx-bitcoin-0.11.0.0/test/Network/Bitcoin/BitX/Spec/Specs/LensSpec.hs new/bitx-bitcoin-0.11.0.1/test/Network/Bitcoin/BitX/Spec/Specs/LensSpec.hs --- old/bitx-bitcoin-0.11.0.0/test/Network/Bitcoin/BitX/Spec/Specs/LensSpec.hs 2016-11-12 20:24:19.000000000 +0100 +++ new/bitx-bitcoin-0.11.0.1/test/Network/Bitcoin/BitX/Spec/Specs/LensSpec.hs 2017-03-13 10:17:58.000000000 +0100 @@ -191,3 +191,10 @@ let _ = x ^. BitX.volume Nothing +_feeInfo :: Maybe Int +_feeInfo = do + let x = BitX.FeeInfo 0 0 0 + let _ = x ^. BitX.makerFee + let _ = x ^. BitX.takerFee + let _ = x ^. BitX.thirtyDayVolume + Nothing diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bitx-bitcoin-0.11.0.0/test/Network/Bitcoin/BitX/Spec/Specs/PrivateSpec.hs new/bitx-bitcoin-0.11.0.1/test/Network/Bitcoin/BitX/Spec/Specs/PrivateSpec.hs --- old/bitx-bitcoin-0.11.0.0/test/Network/Bitcoin/BitX/Spec/Specs/PrivateSpec.hs 2016-08-28 14:40:53.000000000 +0200 +++ new/bitx-bitcoin-0.11.0.1/test/Network/Bitcoin/BitX/Spec/Specs/PrivateSpec.hs 2017-03-13 08:49:49.000000000 +0100 @@ -41,6 +41,8 @@ connectsAndParsesOkay $ BitX.getWithdrawalRequests auth it "getFundingAddress connects to BitX and works" $ connectsAndParsesOkay $ BitX.getFundingAddress auth XBT Nothing + it "getFeeInfo connects to BitX and works" $ + connectsAndParsesOkay $ BitX.getFeeInfo auth XBTZAR else it "API key file not found -- skipping private tests" $ True `shouldBe` True
