@@ -8,6 +8,7 @@ import Cardano.Ledger.Core (PParams)
8
8
import Control.Concurrent.STM (TChan , dupTChan , readTChan )
9
9
import Data.Aeson (KeyValue ((.=) ), object , withObject , (.:) , (.:?) )
10
10
import Data.Aeson qualified as Aeson
11
+ import Data.Aeson.Types (Parser )
11
12
import Data.ByteString.Lazy qualified as LBS
12
13
import Data.ByteString.Short ()
13
14
import Data.Text (pack )
@@ -75,7 +76,7 @@ instance (ToJSON tx, ToJSON (UTxOType tx)) => ToJSON (DraftCommitTxRequest tx) w
75
76
]
76
77
77
78
instance (FromJSON tx , FromJSON (UTxOType tx )) => FromJSON (DraftCommitTxRequest tx ) where
78
- parseJSON v = fullVariant v <|> simpleVariant v
79
+ parseJSON v = fullVariant v <|> simpleVariant v <|> simpleDirectVariant v
79
80
where
80
81
fullVariant = withObject " FullCommitRequest" $ \ o -> do
81
82
blueprintTx :: tx <- o .: " blueprintTx"
@@ -87,6 +88,9 @@ instance (FromJSON tx, FromJSON (UTxOType tx)) => FromJSON (DraftCommitTxRequest
87
88
amount <- o .:? " amount"
88
89
pure SimpleCommitRequest {utxoToCommit, amount}
89
90
91
+ simpleDirectVariant :: Aeson. Value -> Parser (DraftCommitTxRequest tx )
92
+ simpleDirectVariant val = SimpleCommitRequest <$> parseJSON val <*> pure Nothing
93
+
90
94
instance (Arbitrary tx , Arbitrary (UTxOType tx )) => Arbitrary (DraftCommitTxRequest tx ) where
91
95
arbitrary = genericArbitrary
92
96
0 commit comments