@@ -3,27 +3,30 @@ module Maestro.Types.V1.Assets (
3
3
TokenRegistryMetadata (.. ),
4
4
AssetInfo (.. ),
5
5
TimestampedAssetInfo (.. ),
6
+ AssetUTxOs (.. ),
7
+ TimestampedAssetUTxOs (.. ),
6
8
) where
7
9
8
- import Data.Aeson (Value )
9
- import Data.Text (Text )
10
- import Data.Word (Word64 )
11
- import Deriving.Aeson
12
- import Maestro.Types.V1.Common
10
+ import Data.Aeson (Value )
11
+ import Data.Text (Text )
12
+ import Data.Word (Word64 )
13
+ import Deriving.Aeson
14
+ import GHC.Natural (Natural )
15
+ import Maestro.Types.V1.Common
13
16
14
17
-- | Token registry metadata
15
18
data TokenRegistryMetadata = TokenRegistryMetadata
16
- { tokenRegistryMetadataName :: ! Text
19
+ { tokenRegistryMetadataName :: ! Text
17
20
-- ^ Asset name.
18
21
, tokenRegistryMetadataDescription :: ! Text
19
22
-- ^ Asset description.
20
- , tokenRegistryMetadataDecimals :: ! (Maybe Word64 )
23
+ , tokenRegistryMetadataDecimals :: ! (Maybe Word64 )
21
24
-- ^ Recommended value for decimal places.
22
- , tokenRegistryMetadataLogo :: ! (Maybe Text )
25
+ , tokenRegistryMetadataLogo :: ! (Maybe Text )
23
26
-- ^ Base64 encoded logo PNG associated with the asset.
24
- , tokenRegistryMetadataUrl :: ! (Maybe Text )
27
+ , tokenRegistryMetadataUrl :: ! (Maybe Text )
25
28
-- ^ URL associated with the asset.
26
- , tokenRegistryMetadataTicker :: ! (Maybe Text )
29
+ , tokenRegistryMetadataTicker :: ! (Maybe Text )
27
30
-- ^ Asset ticker.
28
31
}
29
32
deriving stock (Eq , Show , Generic )
@@ -34,13 +37,13 @@ data Cip68AssetType = CIP68ATReferenceNft | CIP68ATUserNft | CIP68ATUserFt
34
37
deriving (FromJSON , ToJSON ) via CustomJSON '[ConstructorTagModifier '[StripPrefix " CIP68AT" , CamelToSnake ]] Cip68AssetType
35
38
36
39
data Cip68Metadata = Cip68Metadata
37
- { cip68MetadataExtra :: ! (Maybe Text )
40
+ { cip68MetadataExtra :: ! (Maybe Text )
38
41
-- ^ Custom user defined Plutus data CBOR bytes.
39
42
, cip68MetadataMetadata :: ! Value
40
43
-- ^ Asset CIP-68 metadata.
41
- , cip68MetadataPurpose :: ! Cip68AssetType
44
+ , cip68MetadataPurpose :: ! Cip68AssetType
42
45
-- ^ Purpose.
43
- , cip68MetadataVersion :: ! Word64
46
+ , cip68MetadataVersion :: ! Word64
44
47
-- ^ CIP-68 version.
45
48
}
46
49
deriving stock (Eq , Show , Generic )
@@ -57,11 +60,11 @@ data AssetStandards = AssetStandards
57
60
58
61
-- | Information about a specific Cardano native-asset.
59
62
data AssetInfo = AssetInfo
60
- { assetInfoAssetName :: ! TokenName
63
+ { assetInfoAssetName :: ! TokenName
61
64
-- ^ Hex encoding of the asset name.
62
- , assetInfoAssetStandards :: ! AssetStandards
65
+ , assetInfoAssetStandards :: ! AssetStandards
63
66
-- ^ Asset information corresponding to popular standards.
64
- , assetInfoLatestMintTxMetadata :: ! (Maybe Value )
67
+ , assetInfoLatestMintTxMetadata :: ! (Maybe Value )
65
68
-- ^ Metadata of the most recent transaction which minted or burned the asset.
66
69
, assetInfoTokenRegistryMetadata :: ! (Maybe TokenRegistryMetadata )
67
70
-- ^ See `TokenRegistryMetadata`.
@@ -71,7 +74,7 @@ data AssetInfo = AssetInfo
71
74
72
75
-- | Timestamped `AssetInfo` response.
73
76
data TimestampedAssetInfo = TimestampedAssetInfo
74
- { timestampedAssetInfoData :: ! AssetInfo
77
+ { timestampedAssetInfoData :: ! AssetInfo
75
78
-- ^ See `AssetInfo`.
76
79
, timestampedAssetInfoLastUpdated :: ! LastUpdated
77
80
-- ^ See `LastUpdated`.
@@ -83,3 +86,37 @@ instance IsTimestamped TimestampedAssetInfo where
83
86
type TimestampedData TimestampedAssetInfo = AssetInfo
84
87
getTimestampedData = timestampedAssetInfoData
85
88
getTimestamp = timestampedAssetInfoLastUpdated
89
+
90
+ -- | UTxOs that contain a specific asset.
91
+ data AssetUTxOs = AssetUTxOs
92
+ { assetUTxOsTxHash :: ! TxHash
93
+ -- ^ Transaction hash.
94
+ , assetUTxOsIndex :: ! TxIndex
95
+ -- ^ Transaction index.
96
+ , assetUTxOsAddress :: ! (Bech32StringOf Address )
97
+ -- ^ Address.
98
+ , assetUTxOsAmount :: ! Natural
99
+ -- ^ Amount.
100
+ }
101
+ deriving stock (Eq , Show , Generic )
102
+ deriving (FromJSON , ToJSON ) via CustomJSON '[FieldLabelModifier '[StripPrefix " assetUTxOs" , CamelToSnake ]] AssetUTxOs
103
+
104
+ -- | Timestamped `AssetUTxOs` response.
105
+ data TimestampedAssetUTxOs = TimestampedAssetUTxOs
106
+ { timestampedAssetUTxOsData :: ! [AssetUTxOs ]
107
+ -- ^ See `AssetUTxOs`.
108
+ , timestampedAssetUTxOsLastUpdated :: ! LastUpdated
109
+ -- ^ See `LastUpdated`.
110
+ , timestampedAssetUTxOsNextCursor :: ! (Maybe NextCursor )
111
+ -- ^ See `NextCursor`.
112
+ }
113
+ deriving stock (Eq , Show , Generic )
114
+ deriving (FromJSON , ToJSON ) via CustomJSON '[FieldLabelModifier '[StripPrefix " timestampedAssetUTxOs" , CamelToSnake ]] TimestampedAssetUTxOs
115
+
116
+ instance IsTimestamped TimestampedAssetUTxOs where
117
+ type TimestampedData TimestampedAssetUTxOs = [AssetUTxOs ]
118
+ getTimestampedData = timestampedAssetUTxOsData
119
+ getTimestamp = timestampedAssetUTxOsLastUpdated
120
+
121
+ instance HasCursor TimestampedAssetUTxOs where
122
+ getNextCursor = timestampedAssetUTxOsNextCursor
0 commit comments