@@ -54,40 +54,7 @@ import VVA.API.Utils
54
54
import VVA.Config
55
55
import qualified VVA.Proposal as Proposal
56
56
import VVA.Types (AppError (ValidationError ))
57
-
58
- newtype HexText
59
- = HexText { unHexText :: Text }
60
- deriving newtype (Eq , Show )
61
-
62
- instance FromJSON HexText where
63
- parseJSON (Aeson. String t) = do
64
- if Text. length t `mod` 2 == 1 || Text. any (not . isHexDigit) t
65
- then mzero
66
- else pure $ HexText t
67
-
68
- instance ToJSON HexText where
69
- toJSON (HexText t) = Aeson. String t
70
-
71
- -- To use it in routes, we need to be able to parse it from Text:
72
- instance FromHttpApiData HexText where
73
- parseUrlPiece txt
74
- | Text. all isHexDigit txt && even (Text. length txt) = Right (HexText txt)
75
- | otherwise = Left " Not a valid hex value"
76
-
77
-
78
- instance ToParamSchema HexText where
79
- toParamSchema _ = mempty
80
- & type_ ?~ OpenApiString
81
- & format ?~ " hex"
82
-
83
- instance ToSchema HexText where
84
- declareNamedSchema _ = do
85
- textSchema <- declareNamedSchema (Proxy :: Proxy Text )
86
- return $ textSchema
87
- & name ?~ " HexText"
88
- & schema . type_ ?~ OpenApiString
89
- & schema . format ?~ " hex"
90
- & schema . example ?~ toJSON (HexText " a1b2c3" )
57
+ import VVA.Common.Types
91
58
92
59
newtype AnyValue
93
60
= AnyValue { unAnyValue :: Maybe Value }
@@ -204,37 +171,6 @@ instance ToParamSchema GovernanceActionType where
204
171
& type_ ?~ OpenApiString
205
172
& enum_ ?~ map toJSON (enumFromTo minBound maxBound :: [GovernanceActionType ])
206
173
207
-
208
- data DRepSortMode = Random | VotingPower | RegistrationDate | Status deriving (Bounded , Enum , Eq , Generic , Read , Show )
209
-
210
- instance FromJSON DRepSortMode where
211
- parseJSON (Aeson. String dRepSortMode) = pure $ fromJust $ readMaybe (Text. unpack dRepSortMode)
212
- parseJSON _ = fail " "
213
-
214
- instance ToJSON DRepSortMode where
215
- toJSON x = Aeson. String $ Text. pack $ show x
216
-
217
- instance ToSchema DRepSortMode where
218
- declareNamedSchema proxy = do
219
- NamedSchema name_ schema_ <- genericDeclareNamedSchema (fromAesonOptions defaultOptions) proxy
220
- return $
221
- NamedSchema name_ $
222
- schema_
223
- & description ?~ " DRep Sort Mode"
224
- & example ?~ toJSON VotingPower
225
-
226
- instance FromHttpApiData DRepSortMode where
227
- parseQueryParam t = case readMaybe $ Text. unpack t of
228
- Just x -> Right x
229
- Nothing -> Left (" incorrect DRep sort mode: " <> t)
230
-
231
- instance ToParamSchema DRepSortMode where
232
- toParamSchema _ =
233
- mempty
234
- & type_ ?~ OpenApiString
235
- & enum_ ?~ map toJSON (enumFromTo minBound maxBound :: [DRepSortMode ])
236
-
237
-
238
174
data GovernanceActionSortMode = SoonestToExpire | NewestCreated | MostYesVotes deriving
239
175
( Bounded
240
176
, Enum
@@ -673,115 +609,6 @@ instance ToSchema GetTransactionStatusResponse where
673
609
& example
674
610
?~ toJSON exampleGetTransactionStatusResponse
675
611
676
- newtype DRepHash
677
- = DRepHash Text
678
- deriving (Generic , Show )
679
-
680
- instance FromJSON DRepHash where
681
- parseJSON (Aeson. String s) = pure $ DRepHash s
682
- parseJSON x = fail (" expected DRepHash to be a string but got: " <> Char8. unpack (encode x))
683
-
684
- instance ToJSON DRepHash where
685
- toJSON (DRepHash raw) = toJSON raw
686
-
687
-
688
- exampleDrepHash :: Text
689
- exampleDrepHash = " b4e4184bfedf920fec53cdc327de4da661ae427784c0ccca9e3c2f50"
690
-
691
- instance ToSchema DRepHash where
692
- declareNamedSchema _ = pure $ NamedSchema (Just " DRepHash" ) $ mempty
693
- & type_ ?~ OpenApiObject
694
- & description ?~ " Hash of a DRep"
695
- & example
696
- ?~ toJSON exampleDrepHash
697
-
698
-
699
- data DRepStatus = Active | Inactive | Retired deriving (Bounded , Enum , Eq , Generic , Ord , Read , Show )
700
-
701
- -- ToJSON instance for DRepStatus
702
- instance ToJSON DRepStatus where
703
- toJSON Retired = " Retired"
704
- toJSON Active = " Active"
705
- toJSON Inactive = " Inactive"
706
-
707
- -- FromJSON instance for DRepStatus
708
- instance FromJSON DRepStatus where
709
- parseJSON = withText " DRepStatus" $ \ case
710
- " Retired" -> pure Retired
711
- " Active" -> pure Active
712
- " Inactive" -> pure Inactive
713
- _ -> fail " Invalid DRepStatus"
714
-
715
- -- ToSchema instance for DRepStatus
716
- instance ToSchema DRepStatus where
717
- declareNamedSchema _ = pure $ NamedSchema (Just " DRepStatus" ) $ mempty
718
- & type_ ?~ OpenApiString
719
- & description ?~ " DRep Status"
720
- & enum_ ?~ map toJSON [Retired , Active , Inactive ]
721
-
722
- instance FromHttpApiData DRepStatus where
723
- parseQueryParam t = case readMaybe $ Text. unpack t of
724
- Just x -> Right x
725
- Nothing -> Left (" incorrect DRep status " <> t)
726
-
727
- instance ToParamSchema DRepStatus where
728
- toParamSchema _ =
729
- mempty
730
- & type_ ?~ OpenApiString
731
- & enum_ ?~ map toJSON (enumFromTo minBound maxBound :: [DRepStatus ])
732
-
733
- data DRepType = NormalDRep | SoleVoter
734
-
735
- instance Show DRepType where
736
- show NormalDRep = " DRep"
737
- show SoleVoter = " SoleVoter"
738
-
739
- -- ToJSON instance for DRepType
740
- instance ToJSON DRepType where
741
- toJSON NormalDRep = " DRep"
742
- toJSON SoleVoter = " SoleVoter"
743
-
744
- -- FromJSON instance for DRepType
745
- instance FromJSON DRepType where
746
- parseJSON = withText " DRepType" $ \ case
747
- " DRep" -> pure NormalDRep
748
- " SoleVoter" -> pure SoleVoter
749
- _ -> fail " Invalid DRepType"
750
-
751
- -- ToSchema instance for DRepType
752
- instance ToSchema DRepType where
753
- declareNamedSchema _ = pure $ NamedSchema (Just " DRepType" ) $ mempty
754
- & type_ ?~ OpenApiString
755
- & description ?~ " DRep Type"
756
- & enum_ ?~ map toJSON [NormalDRep , SoleVoter ]
757
-
758
- data DRep
759
- = DRep
760
- { dRepIsScriptBased :: Bool
761
- , dRepDrepId :: DRepHash
762
- , dRepView :: Text
763
- , dRepUrl :: Maybe Text
764
- , dRepMetadataHash :: Maybe Text
765
- , dRepDeposit :: Integer
766
- , dRepVotingPower :: Maybe Integer
767
- , dRepStatus :: DRepStatus
768
- , dRepType :: DRepType
769
- , dRepLatestTxHash :: Maybe HexText
770
- , dRepLatestRegistrationDate :: UTCTime
771
- , dRepMetadataError :: Maybe Text
772
- , dRepPaymentAddress :: Maybe Text
773
- , dRepGivenName :: Maybe Text
774
- , dRepObjectives :: Maybe Text
775
- , dRepMotivations :: Maybe Text
776
- , dRepQualifications :: Maybe Text
777
- , dRepImageUrl :: Maybe Text
778
- , dRepImageHash :: Maybe HexText
779
- }
780
- deriving (Generic , Show )
781
-
782
-
783
- deriveJSON (jsonOptions " dRep" ) ''DRep
784
-
785
612
exampleDrep :: Text
786
613
exampleDrep =
787
614
" {\" drepId\" : \" d3a62ffe9c214e1a6a9809f7ab2a104c117f85e1f171f8f839d94be5\" ,"
@@ -803,21 +630,6 @@ exampleDrep =
803
630
<> " \" imageUrl\" : \" https://image.url\" ,"
804
631
<> " \" imageHash\" : \" 9198b1b204273ba5c67a13310b5a806034160f6a063768297e161d9b759cad61\" }"
805
632
806
- -- ToSchema instance for DRep
807
- instance ToSchema DRep where
808
- declareNamedSchema proxy = do
809
- NamedSchema name_ schema_ <-
810
- genericDeclareNamedSchema
811
- ( fromAesonOptions $ jsonOptions " dRep" )
812
- proxy
813
- return $
814
- NamedSchema name_ $
815
- schema_
816
- & description ?~ " DRep"
817
- & example
818
- ?~ toJSON exampleDrep
819
-
820
-
821
633
exampleListDRepsResponse :: Text
822
634
exampleListDRepsResponse =
823
635
" { \" page\" : 0,"
0 commit comments