@@ -9,7 +9,6 @@ module HydraSdk.Internal.Types.Snapshot
99import Prelude
1010
1111import Aeson (class DecodeAeson , class EncodeAeson , decodeAeson , encodeAeson , getField )
12- import Cardano.Types (TransactionHash )
1312import Control.Alt ((<|>))
1413import Data.Bifunctor (lmap )
1514import Data.Codec.Argonaut (JsonCodec , array , decode , encode , object , string ) as CA
@@ -19,6 +18,7 @@ import Data.Generic.Rep (class Generic)
1918import Data.Newtype (class Newtype , wrap )
2019import Data.Show.Generic (genericShow )
2120import HydraSdk.Internal.Lib.Codec (aesonCodec , fromCaJsonDecodeError )
21+ import HydraSdk.Internal.Types.Tx (HydraTx , hydraTxCodec )
2222import HydraSdk.Internal.Types.UtxoMap (HydraUtxoMap , hydraUtxoMapCodec )
2323
2424data ConfirmedSnapshot
@@ -58,8 +58,7 @@ confirmedSnapshotCodec =
5858newtype HydraSnapshot = HydraSnapshot
5959 { snapshotNumber :: Int
6060 , utxo :: HydraUtxoMap
61- -- FIXME: support full transactions
62- -- , confirmedTransactions :: Array TransactionHash
61+ , confirmed :: Array HydraTx
6362 }
6463
6564derive instance Generic HydraSnapshot _
@@ -75,19 +74,21 @@ instance DecodeAeson HydraSnapshot where
7574 snapshotNumber <- getField obj " snapshotNumber" <|> getField obj " number"
7675 utxo <- (lmap fromCaJsonDecodeError <<< CA .decode hydraUtxoMapCodec) =<< getField obj
7776 " utxo"
78- -- confirmedTransactions <- getField obj "confirmedTransactions" <|> getField obj "confirmed"
77+ confirmed <-
78+ (lmap fromCaJsonDecodeError <<< CA .decode (CA .array hydraTxCodec))
79+ =<< getField obj " confirmed"
7980 pure $ wrap
8081 { snapshotNumber
8182 , utxo
82- -- , confirmedTransactions
83+ , confirmed
8384 }
8485
8586instance EncodeAeson HydraSnapshot where
8687 encodeAeson (HydraSnapshot snapshot) = do
8788 encodeAeson
8889 { snapshotNumber: encodeAeson snapshot.snapshotNumber
8990 , utxo: CA .encode hydraUtxoMapCodec snapshot.utxo
90- -- , confirmedTransactions: encodeAeson snapshot.confirmedTransactions
91+ , confirmed: CA .encode ( CA .array hydraTxCodec) snapshot.confirmed
9192 }
9293
9394hydraSnapshotCodec :: CA.JsonCodec HydraSnapshot
@@ -97,6 +98,6 @@ emptySnapshot :: HydraSnapshot
9798emptySnapshot = wrap
9899 { snapshotNumber: zero
99100 , utxo: mempty
100- -- , confirmedTransactions : mempty
101+ , confirmed : mempty
101102 }
102103
0 commit comments