bnb-staking-csvs 0.2.0.0 → 0.2.1.0
raw patch · 3 files changed
+40/−4 lines, 3 filesdep ~textPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: text
API changes (from Hackage documentation)
+ Console.BnbStaking.Main: [argYear] :: Args -> Maybe Integer
- Console.BnbStaking.Main: Args :: String -> Maybe String -> Bool -> Args
+ Console.BnbStaking.Main: Args :: String -> Maybe String -> Bool -> Maybe Integer -> Args
Files
- CHANGELOG.md +6/−0
- bnb-staking-csvs.cabal +2/−2
- src/Console/BnbStaking/Main.hs +32/−2
CHANGELOG.md view
@@ -3,6 +3,12 @@ ## master +## v0.2.1.0++* Add `--year` flag for filtering output.+* Bump dependency versions(aeson).++ ## v0.2.0.0 * Add a `--cointracking` flag to format the data for use with CoinTracking's
bnb-staking-csvs.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: bnb-staking-csvs-version: 0.2.0.0+version: 0.2.1.0 synopsis: Generate CSV Exports of Your BNB Staking Rewards. description: @bnb-staking-csvs@ is a CLI program that queries the Binance.org API for all of a delegator's rewards and exports the resulting data to a CSV file.@@ -57,7 +57,7 @@ ViewPatterns ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -O2 build-depends:- aeson <2+ aeson <3 , base >=4.7 && <5 , bytestring <1 , cassava <1
src/Console/BnbStaking/Main.hs view
@@ -8,7 +8,13 @@ , getArgs , Args(..) ) where+import Control.Monad ( filterM ) import Data.Maybe ( fromMaybe )+import Data.Time ( localDay+ , toGregorian+ , utcToLocalZonedTime+ , zonedTimeToLocalTime+ ) import Data.Version ( showVersion ) import Network.HTTP.Req ( defaultHttpConfig , runReq@@ -28,7 +34,9 @@ , typ ) -import Console.BnbStaking.Api ( getAllRewards )+import Console.BnbStaking.Api ( Reward(rRewardTime)+ , getAllRewards+ ) import Console.BnbStaking.CoinTracking ( makeCoinTrackingImport ) import Console.BnbStaking.Csv ( makeCsvContents )@@ -46,7 +54,21 @@ if argCoinTracking then makeCoinTrackingImport outputFile argPubKey rewards else do- output <- makeCsvContents rewards+ filteredRewards <- maybe+ (return rewards)+ (\year -> filterM+ (\reward -> do+ rewardTime <- utcToLocalZonedTime $ rRewardTime reward+ return+ . (\(y, _, _) -> y == year)+ . toGregorian+ . localDay+ $ zonedTimeToLocalTime rewardTime+ )+ rewards+ )+ argYear+ output <- makeCsvContents filteredRewards if outputFile == "-" then LBC.putStr output else LBC.writeFile outputFile output@@ -62,6 +84,8 @@ , argCoinTracking :: Bool -- ^ Flag to enable writing/printing files formatted for CoinTracking -- Bulk Imports.+ , argYear :: Maybe Integer+ -- ^ Year for limiting the output. } deriving (Show, Read, Eq, Data, Typeable) @@ -84,6 +108,12 @@ &= help "Generate a CoinTracking Import file." &= explicit &= name "cointracking"+ , argYear = Nothing+ &= help "Limit to given year"+ &= explicit+ &= name "y"+ &= name "year"+ &= typ "YYYY" } &= summary ( "bnb-staking-csvs v"