Skip to content

Commit

Permalink
Merge #2309
Browse files Browse the repository at this point in the history
2309: Fix parsing of SMASHPoolId r=hasufell a=hasufell

follow-up fix of #2249 

found by @piotr-iohk 

https://smash.shelley-qa.dev.cardano.org/api/v1/delisted vs https://smash.cardano-mainnet.iohk.io/api/v1/delisted

Co-authored-by: Julian Ospald <[email protected]>
  • Loading branch information
iohk-bors[bot] and Julian Ospald authored Nov 11, 2020
2 parents 6cdad95 + b24e2a5 commit ddc4457
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 23 deletions.
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,13 @@ See **Installation Instructions** for each available [release](https://github.co

> ### Latest releases
>
> | cardano-wallet | jörmungandr (compatible versions) | cardano-node (compatible versions)
> | --- | --- | ---
> | `master` branch | [v0.9.0](https://github.com/input-output-hk/jormungandr/releases/tag/v0.9.0) | [1.21.1](https://github.com/input-output-hk/cardano-node/releases/tag/1.21.1)
> | [v2020-11-03](https://github.com/input-output-hk/cardano-wallet/releases/tag/v2020-11-03) | [v0.9.0](https://github.com/input-output-hk/jormungandr/releases/tag/v0.9.0) | [1.21.1](https://github.com/input-output-hk/cardano-node/releases/tag/1.21.1)
> | [v2020-10-13](https://github.com/input-output-hk/cardano-wallet/releases/tag/v2020-10-13) | [v0.9.0](https://github.com/input-output-hk/jormungandr/releases/tag/v0.9.0) | [1.21.1](https://github.com/input-output-hk/cardano-node/releases/tag/1.21.1)
> | [v2020-09-30](https://github.com/input-output-hk/cardano-wallet/releases/tag/v2020-09-30) | [v0.9.0](https://github.com/input-output-hk/jormungandr/releases/tag/v0.9.0) | [1.20.0](https://github.com/input-output-hk/cardano-node/releases/tag/1.20.0)
> | [v2020-09-22](https://github.com/input-output-hk/cardano-wallet/releases/tag/v2020-09-22) | [v0.9.0](https://github.com/input-output-hk/jormungandr/releases/tag/v0.9.0) | [1.19.1](https://github.com/input-output-hk/cardano-node/releases/tag/1.19.1) | [v0.9.0](https://github.com/input-output-hk/jormungandr/releases/tag/v0.9.0) | [1.20.0](https://github.com/input-output-hk/cardano-node/releases/tag/1.20.0)
> | cardano-wallet | jörmungandr (compatible versions) | cardano-node (compatible versions) | SMASH (compatible versions)
> | --- | --- | --- | ---
> | `master` branch | [v0.9.0](https://github.com/input-output-hk/jormungandr/releases/tag/v0.9.0) | [1.21.1](https://github.com/input-output-hk/cardano-node/releases/tag/1.21.1) | [1.2.0](https://github.com/input-output-hk/smash/releases/tag/1.2.0)
> | [v2020-11-03](https://github.com/input-output-hk/cardano-wallet/releases/tag/v2020-11-03) | [v0.9.0](https://github.com/input-output-hk/jormungandr/releases/tag/v0.9.0) | [1.21.1](https://github.com/input-output-hk/cardano-node/releases/tag/1.21.1) | [1.2.0](https://github.com/input-output-hk/smash/releases/tag/1.2.0)
> | [v2020-10-13](https://github.com/input-output-hk/cardano-wallet/releases/tag/v2020-10-13) | [v0.9.0](https://github.com/input-output-hk/jormungandr/releases/tag/v0.9.0) | [1.21.1](https://github.com/input-output-hk/cardano-node/releases/tag/1.21.1) | [1.2.0](https://github.com/input-output-hk/smash/releases/tag/1.2.0)
> | [v2020-09-30](https://github.com/input-output-hk/cardano-wallet/releases/tag/v2020-09-30) | [v0.9.0](https://github.com/input-output-hk/jormungandr/releases/tag/v0.9.0) | [1.20.0](https://github.com/input-output-hk/cardano-node/releases/tag/1.20.0) | [1.2.0](https://github.com/input-output-hk/smash/releases/tag/1.2.0)
> | [v2020-09-22](https://github.com/input-output-hk/cardano-wallet/releases/tag/v2020-09-22) | [v0.9.0](https://github.com/input-output-hk/jormungandr/releases/tag/v0.9.0) | [1.19.1](https://github.com/input-output-hk/cardano-node/releases/tag/1.19.1) | [1.2.0](https://github.com/input-output-hk/smash/releases/tag/1.2.0)

## How to build from sources
Expand Down
37 changes: 21 additions & 16 deletions lib/core/src/Cardano/Pool/Metadata.hs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NumericUnderscores #-}
Expand Down Expand Up @@ -34,13 +35,16 @@ import Cardano.BM.Data.Severity
( Severity (..) )
import Cardano.BM.Data.Tracer
( HasPrivacyAnnotation (..), HasSeverityAnnotation (..) )
import Cardano.Wallet.Api.Types
( defaultRecordTypeOptions )
import Cardano.Wallet.Primitive.AddressDerivation
( hex )
import Cardano.Wallet.Primitive.Types
( PoolId
, StakePoolMetadata (..)
, StakePoolMetadataHash (..)
, StakePoolMetadataUrl (..)
, decodePoolIdBech32
)
import Control.Exception
( IOException, handle )
Expand All @@ -58,10 +62,9 @@ import Data.Aeson
( FromJSON (..)
, ToJSON (..)
, eitherDecodeStrict
, object
, withObject
, (.:)
, (.=)
, fieldLabelModifier
, genericParseJSON
, genericToJSON
)
import Data.Bifunctor
( first )
Expand All @@ -77,6 +80,8 @@ import Data.Text.Class
( TextDecodingError (..), ToText (..), fromText )
import Fmt
( pretty )
import GHC.Generics
( Generic )
import Network.HTTP.Client
( HttpException (..)
, Manager
Expand Down Expand Up @@ -112,22 +117,22 @@ metadaFetchEp pid (StakePoolMetadataHash bytes)
pidStr = T.unpack $ toText pid

-- | TODO: import SMASH types
newtype SMASHPoolId = SMASHPoolId T.Text
deriving stock (Eq, Show, Ord)

instance ToJSON SMASHPoolId where
toJSON (SMASHPoolId poolId) =
object
[ "poolId" .= poolId
]
newtype SMASHPoolId = SMASHPoolId
{ poolId :: T.Text
} deriving stock (Eq, Show, Ord)
deriving (Generic)

instance FromJSON SMASHPoolId where
parseJSON = withObject "SMASHPoolId" $ \o -> do
poolId <- o .: "poolId"
return $ SMASHPoolId poolId
parseJSON = genericParseJSON defaultRecordTypeOptions
{ fieldLabelModifier = id }

instance ToJSON SMASHPoolId where
toJSON = genericToJSON defaultRecordTypeOptions
{ fieldLabelModifier = id }

toPoolId :: SMASHPoolId -> Either TextDecodingError PoolId
toPoolId (SMASHPoolId pid) = fromText pid
toPoolId (SMASHPoolId pid) =
either (\_ -> decodePoolIdBech32 pid) Right (fromText @PoolId pid)

-- | Some default settings, overriding some of the library's default with
-- stricter values.
Expand Down
3 changes: 3 additions & 0 deletions lib/core/src/Cardano/Wallet/Api/Types.hs
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,9 @@ module Cardano.Wallet.Api.Types
, PostTransactionDataT
, PostTransactionFeeDataT
, ApiWalletMigrationPostDataT

-- * other
, defaultRecordTypeOptions
) where

import Prelude
Expand Down

0 comments on commit ddc4457

Please sign in to comment.