diff --git a/libatrade.cabal b/libatrade.cabal index 8205f47..0c0551d 100644 --- a/libatrade.cabal +++ b/libatrade.cabal @@ -1,5 +1,5 @@ name: libatrade -version: 0.8.0.0 +version: 0.8.0.1 synopsis: ATrade infrastructure core library description: Please see README.md homepage: https://github.com/asakul/libatrade.git diff --git a/src/ATrade/Types.hs b/src/ATrade/Types.hs index 90cd8ef..52e8436 100644 --- a/src/ATrade/Types.hs +++ b/src/ATrade/Types.hs @@ -231,11 +231,13 @@ parseBar = do deserializeBar :: [ByteString] -> Maybe (BarTimeframe, Bar) deserializeBar (header:rawData:_) = case runGetOrFail parseBar rawData of Left (_, _, _) -> Nothing - Right (_, _, (tf, bar)) -> Just $ (tf, bar { barSecurity = T.takeWhile (/= ':') . E.decodeUtf8 . B.toStrict $ header }) + Right (_, _, (tf, bar)) -> + case E.decodeUtf8' . B.toStrict $ header of + Right fullHeader -> Just $ (tf, bar { barSecurity = T.takeWhile (/= ':') fullHeader }) + Left err -> Nothing deserializeBar _ = Nothing - data SignalId = SignalId { strategyId :: T.Text, signalName :: T.Text,