cardano/assets
Types
A type-alias for ’AssetName`, which are free-form byte-arrays between 0 and 32 bytes.
Alias
AssetName = ByteArray
Lovelace is now a type wrapper for Int.
Alias
Lovelace = Int
A type-alias for a PolicyId. A PolicyId is always 28-byte long
Alias
PolicyId = Hash<Blake2b_224, Script>
Constants
Ada, the native currency, isn’t associated with any AssetName (it’s not
possible to mint Ada!).
By convention, it is an empty ByteArray.
Ada, the native currency, isn’t associated with any PolicyId (it’s not
possible to mint Ada!).
By convention, it is an empty ByteArray.
Functions
Constructing
Construct a Value from an asset identifier (i.e. PolicyId + AssetName)
and a given quantity.
Promote an arbitrary list of assets into a Value. This function fails
(i.e. halt the program execution) if:
- there’s any duplicate amongst
PolicyId;
- there’s any duplicate amongst
AssetName;
- the
AssetName aren’t sorted in ascending lexicographic order; or
- any asset quantity is null.
This function is meant to turn arbitrary user-defined Data into safe Value,
while checking for internal invariants.
Construct a Value from a lovelace quantity.
Friendly reminder: 1 Ada = 1.000.000 Lovelace
Inspecting
Check is a Value is zero. That is, it has no assets and holds no Ada/Lovelace.
A list of all token policies in that Value with non-zero tokens.
Extract the quantity of a given asset.
Get all tokens associated with a given policy.
Combining
Add a (positive or negative) quantity of a single token to a assets.
This is more efficient than merge for a single asset.
Negates quantities of all tokens (including Ada) in that Value.
v1
|> assets.negate
|> assets.merge(v1)
|> assets.is_zero
// True
Transforming
Flatten a Value as list of 3-tuple (PolicyId, AssetName, Quantity).
Handy to manipulate values as uniform lists.
Flatten a Value as a list of results, possibly discarding some along the way.
When the transform function returns None, the result is discarded altogether.
Construct a Value from an asset identifier (i.e. PolicyId + AssetName)
and a given quantity.
Promote an arbitrary list of assets into a Value. This function fails
(i.e. halt the program execution) if:
- there’s any duplicate amongst
PolicyId; - there’s any duplicate amongst
AssetName; - the
AssetNamearen’t sorted in ascending lexicographic order; or - any asset quantity is null.
This function is meant to turn arbitrary user-defined Data into safe Value,
while checking for internal invariants.
Construct a Value from a lovelace quantity.
Friendly reminder: 1 Ada = 1.000.000 Lovelace
Check is a Value is zero. That is, it has no assets and holds no Ada/Lovelace.
A list of all token policies in that Value with non-zero tokens.
Extract the quantity of a given asset.
Get all tokens associated with a given policy.
Combining
Add a (positive or negative) quantity of a single token to a assets.
This is more efficient than merge for a single asset.
Negates quantities of all tokens (including Ada) in that Value.
v1
|> assets.negate
|> assets.merge(v1)
|> assets.is_zero
// True
Transforming
Flatten a Value as list of 3-tuple (PolicyId, AssetName, Quantity).
Handy to manipulate values as uniform lists.
Flatten a Value as a list of results, possibly discarding some along the way.
When the transform function returns None, the result is discarded altogether.
Add a (positive or negative) quantity of a single token to a assets.
This is more efficient than merge for a single asset.
Negates quantities of all tokens (including Ada) in that Value.
v1
|> assets.negate
|> assets.merge(v1)
|> assets.is_zero
// True
Flatten a Value as list of 3-tuple (PolicyId, AssetName, Quantity).
Handy to manipulate values as uniform lists.
Flatten a Value as a list of results, possibly discarding some along the way.
When the transform function returns None, the result is discarded altogether.