aiken/transaction/value
Types
A type-alias for ’AssetName`, which are free-form byte-arrays between 0 and 32 bytes.
Alias
AssetName = ByteArray
A multi-asset value that can be found when minting transaction. Note that
because of historical reasons, this is slightly different from Value found
in transaction outputs.
Note that you’re never expected to construct a MintedValue yourself. If you need to
manipulate multi-asset values, use Value
See also from_minted_value.
A type-alias for a PolicyId. A PolicyId is always 28-byte long
Alias
PolicyId = Hash<Blake2b_224, Script>
Constants
ada_asset_name: ByteArray = #""
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_policy_id: 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
add(
self: Value,
policy_id: PolicyId,
asset_name: AssetName,
quantity: Int,
) -> Value
Add a (positive or negative) quantity of a single token to a value.
This is more efficient than merge for a single asset.
flatten(self: Value) -> List<(PolicyId, AssetName, Int)>
Flatten a value as list of 3-tuple (PolicyId, AssetName, Quantity).
Handy to manipulate values as uniform lists.
flatten_with(
self: Value,
with: fn(PolicyId, AssetName, Int) -> Option<result>,
) -> List<result>
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.
from_asset(policy_id: PolicyId, asset_name: AssetName, quantity: Int) -> Value
Construct a Value from an asset identifier (i.e. PolicyId + AssetName)
and a given quantity.
from_lovelace(quantity: Int) -> Value
Construct a Value from a lovelace quantity.
Friendly reminder: 1 Ada = 1.000.000 Lovelace
from_minted_value(self: MintedValue) -> Value
Convert a MintedValue into a Value.
lovelace_of(self: Value) -> Int
A specialized version of quantity_of for the Ada currency.
merge(left: Value, right: Value) -> Value
Combine two Value together.
negate(self: Value) -> Value
Negates quantities of all tokens (including Ada) in that Value.
v1
|> value.negate
|> value.merge(v1)
|> value.is_zero
// True
policies(self: Value) -> List<PolicyId>
A list of all token policies in that Value with non-zero tokens.
quantity_of(self: Value, policy_id: PolicyId, asset_name: AssetName) -> Int
Extract the quantity of a given asset.
to_dict(self: Value) -> Dict<PolicyId, Dict<AssetName, Int>>
Convert the value into a dictionary of dictionaries.
to_minted_value(self: Value) -> MintedValue
Convert a Value into a MintedValue.
tokens(self: Value, policy_id: PolicyId) -> Dict<AssetName, Int>
Get all tokens associated with a given policy.
without_lovelace(self: Value) -> Value
Get a Value excluding Ada.
zero() -> Value
Construct an empty Value with nothing in it.