@@ -270,7 +270,7 @@ instance SerialiseAddress (Address ShelleyAddr) where
270
270
271
271
deserialiseAddress (AsAddress AsShelleyAddr ) t =
272
272
either (const Nothing ) Just $
273
- deserialiseFromBech32 ( AsAddress AsShelleyAddr ) t
273
+ deserialiseFromBech32 t
274
274
275
275
instance ToJSON (Address ShelleyAddr ) where
276
276
toJSON = Aeson. String . serialiseAddress
@@ -384,10 +384,10 @@ instance IsShelleyBasedEra era => FromJSON (AddressInEra era) where
384
384
addressAny <- runParsecParser parseAddressAny txt
385
385
pure $ anyAddressInShelleyBasedEra sbe addressAny
386
386
387
- parseAddressAny :: Parsec. Parser AddressAny
387
+ parseAddressAny :: SerialiseAddress addr => Parsec. Parser addr
388
388
parseAddressAny = do
389
389
str <- lexPlausibleAddressString
390
- case deserialiseAddress AsAddressAny str of
390
+ case deserialiseAddress asType str of
391
391
Nothing -> fail $ " invalid address: " <> Text. unpack str
392
392
Just addr -> pure addr
393
393
@@ -478,7 +478,8 @@ shelleyAddressInEra
478
478
-> Address ShelleyAddr
479
479
-> AddressInEra era
480
480
shelleyAddressInEra sbe =
481
- AddressInEra (ShelleyAddressInEra sbe)
481
+ shelleyBasedEraConstraints sbe $
482
+ AddressInEra (ShelleyAddressInEra sbe)
482
483
483
484
anyAddressInShelleyBasedEra
484
485
:: ()
@@ -495,12 +496,12 @@ anyAddressInEra
495
496
-> Either String (AddressInEra era )
496
497
anyAddressInEra era = \ case
497
498
AddressByron addr ->
498
- Right ( AddressInEra ByronAddressInAnyEra addr)
499
- AddressShelley addr ->
500
- forEraInEon
501
- era
502
- ( Left " Expected Byron based era address " )
503
- ( \ sbe -> Right ( AddressInEra (ShelleyAddressInEra sbe) addr))
499
+ pure $ AddressInEra ByronAddressInAnyEra addr
500
+ AddressShelley addr -> do
501
+ sbe <- forEraMaybeEon era ?! " Expected Byron based era address "
502
+ shelleyBasedEraConstraints sbe $
503
+ pure $
504
+ AddressInEra (ShelleyAddressInEra sbe) addr
504
505
505
506
toAddressAny :: Address addr -> AddressAny
506
507
toAddressAny a@ ShelleyAddress {} = AddressShelley a
@@ -589,7 +590,7 @@ instance SerialiseAddress StakeAddress where
589
590
590
591
deserialiseAddress AsStakeAddress t =
591
592
either (const Nothing ) Just $
592
- deserialiseFromBech32 AsStakeAddress t
593
+ deserialiseFromBech32 t
593
594
594
595
instance ToJSON StakeAddress where
595
596
toJSON s = Aeson. String $ serialiseAddress s
@@ -685,18 +686,20 @@ fromShelleyAddrIsSbe sbe = \case
685
686
Shelley. AddrBootstrap (Shelley. BootstrapAddress addr) ->
686
687
AddressInEra ByronAddressInAnyEra (ByronAddress addr)
687
688
Shelley. Addr nw pc scr ->
688
- AddressInEra (ShelleyAddressInEra sbe) (ShelleyAddress nw pc scr)
689
+ shelleyBasedEraConstraints sbe $
690
+ AddressInEra (ShelleyAddressInEra sbe) (ShelleyAddress nw pc scr)
689
691
690
692
fromShelleyAddr
691
693
:: ShelleyBasedEra era
692
694
-> Shelley. Addr
693
695
-> AddressInEra era
694
696
fromShelleyAddr _ (Shelley. AddrBootstrap (Shelley. BootstrapAddress addr)) =
695
697
AddressInEra ByronAddressInAnyEra (ByronAddress addr)
696
- fromShelleyAddr sBasedEra (Shelley. Addr nw pc scr) =
697
- AddressInEra
698
- (ShelleyAddressInEra sBasedEra)
699
- (ShelleyAddress nw pc scr)
698
+ fromShelleyAddr sbe (Shelley. Addr nw pc scr) =
699
+ shelleyBasedEraConstraints sbe $
700
+ AddressInEra
701
+ (ShelleyAddressInEra sbe)
702
+ (ShelleyAddress nw pc scr)
700
703
701
704
fromShelleyStakeAddr :: Shelley. RewardAccount -> StakeAddress
702
705
fromShelleyStakeAddr (Shelley. RewardAccount nw sc) = StakeAddress nw sc
0 commit comments