Transaction

Definitions of transaction-related data types.

class pycardano.transaction.TransactionInput(transaction_id: 'TransactionId', index: 'int')

Bases: pycardano.serialization.ArrayCBORSerializable

transaction_id: pycardano.hash.TransactionId
index: int
class pycardano.transaction.AssetName(payload: bytes)

Bases: pycardano.hash.ConstrainedBytes

MAX_SIZE = 32
class pycardano.transaction.Asset(*args, **kwargs)

Bases: pycardano.serialization.DictCBORSerializable

KEY_TYPE

alias of pycardano.transaction.AssetName

VALUE_TYPE

alias of int

union(other: pycardano.transaction.Asset) pycardano.transaction.Asset
class pycardano.transaction.MultiAsset(*args, **kwargs)

Bases: pycardano.serialization.DictCBORSerializable

KEY_TYPE

alias of pycardano.hash.ScriptHash

VALUE_TYPE

alias of pycardano.transaction.Asset

union(other: pycardano.transaction.MultiAsset) pycardano.transaction.MultiAsset
filter(criteria=typing.Callable[[pycardano.hash.ScriptHash, pycardano.transaction.AssetName, int], bool]) pycardano.transaction.MultiAsset

Filter items by criteria.

Parameters

criteria – A function that takes in three input arguments (policy_id, asset_name, amount) and returns a bool. If returned value is True, then the asset will be kept, otherwise discarded.

Returns

A new filtered MultiAsset object.

count(criteria=typing.Callable[[pycardano.hash.ScriptHash, pycardano.transaction.AssetName, int], bool]) int

Count number of distinct assets that satisfy a certain criteria.

Parameters

criteria – A function that takes in three input arguments (policy_id, asset_name, amount) and returns a bool.

Returns

Total number of distinct assets that satisfy the criteria.

Return type

int

class pycardano.transaction.Value(coin: 'int' = 0, multi_asset: 'MultiAsset' = <factory>)

Bases: pycardano.serialization.ArrayCBORSerializable

coin: int = 0

Amount of ADA

multi_asset: pycardano.transaction.MultiAsset

Multi-assets associated with the UTxO

union(other: Union[pycardano.transaction.Value, int]) pycardano.transaction.Value
to_shallow_primitive()
Returns

A CBOR primitive.

Return type

Primitive

Raises

SerializeException – When the object could not be converted to CBOR primitive types.

class pycardano.transaction.TransactionOutput(address: 'Address', amount: 'Union[Value]', datum_hash: 'Optional[DatumHash]' = None, datum: 'Optional[Datum]' = None, script: 'Optional[Union[NativeScript, PlutusV1Script, PlutusV2Script]]' = None, post_alonzo: 'Optional[bool]' = False)

Bases: pycardano.serialization.CBORSerializable

address: pycardano.address.Address
amount: pycardano.transaction.Value
datum_hash: Optional[pycardano.hash.DatumHash] = None
datum: Optional[Union[pycardano.plutus.PlutusData, dict, int, bytes, pycardano.serialization.IndefiniteList, pycardano.serialization.RawCBOR, pycardano.plutus.RawPlutusData]] = None
script: Optional[Union[pycardano.nativescript.NativeScript, pycardano.plutus.PlutusV1Script, pycardano.plutus.PlutusV2Script]] = None
post_alonzo: Optional[bool] = False
validate()

Validate the data stored in the current instance. Defaults to always pass.

Raises

InvalidDataException – When the data is invalid.

property lovelace: int
to_primitive() Union[bytes, bytearray, str, int, float, decimal.Decimal, bool, None, tuple, list, pycardano.serialization.IndefiniteList, dict, collections.defaultdict, collections.OrderedDict, undefined_type, datetime.datetime, re.Pattern, CBORSimpleValue, _cbor2.CBORTag, set, frozenset, frozendict.frozendict, frozenlist._frozenlist.FrozenList, pycardano.serialization.IndefiniteFrozenList]

Convert the instance and its elements to CBOR primitives recursively.

Returns

A CBOR primitive.

Return type

Primitive

Raises

SerializeException – When the object or its elements could not be converted to CBOR primitive types.

classmethod from_primitive(value: Union[bytes, bytearray, str, int, float, decimal.Decimal, bool, None, tuple, list, pycardano.serialization.IndefiniteList, dict, collections.defaultdict, collections.OrderedDict, undefined_type, datetime.datetime, re.Pattern, CBORSimpleValue, _cbor2.CBORTag, set, frozenset, frozendict.frozendict, frozenlist._frozenlist.FrozenList, pycardano.serialization.IndefiniteFrozenList]) pycardano.transaction.TransactionOutput

Turn a CBOR primitive to its original class type.

Parameters
  • cls (CBORBase) – The original class type.

  • value (Primitive) – A CBOR primitive.

Returns

A CBOR serializable object.

Return type

CBORBase

Raises

DeserializeException – When the object could not be restored from primitives.

class pycardano.transaction.UTxO(input: 'TransactionInput', output: 'TransactionOutput')

Bases: pycardano.serialization.ArrayCBORSerializable

input: pycardano.transaction.TransactionInput
output: pycardano.transaction.TransactionOutput
class pycardano.transaction.TransactionBody(inputs: 'List[TransactionInput]' = <factory>, outputs: 'List[TransactionOutput]' = <factory>, fee: 'int' = 0, ttl: 'Optional[int]' = None, certificates: 'Optional[List[Certificate]]' = None, withdraws: 'Optional[Withdrawals]' = None, update: 'Any' = None, auxiliary_data_hash: 'Optional[AuxiliaryDataHash]' = None, validity_start: 'Optional[int]' = None, mint: 'Optional[MultiAsset]' = None, script_data_hash: 'Optional[ScriptDataHash]' = None, collateral: 'Optional[List[TransactionInput]]' = None, required_signers: 'Optional[List[VerificationKeyHash]]' = None, network_id: 'Optional[Network]' = None, collateral_return: 'Optional[TransactionOutput]' = None, total_collateral: 'Optional[int]' = None, reference_inputs: 'Optional[List[TransactionInput]]' = None)

Bases: pycardano.serialization.MapCBORSerializable

inputs: List[pycardano.transaction.TransactionInput]
outputs: List[pycardano.transaction.TransactionOutput]
fee: int = 0
ttl: Optional[int] = None
certificates: Optional[List[Union[pycardano.certificate.StakeRegistration, pycardano.certificate.StakeDeregistration, pycardano.certificate.StakeDelegation, pycardano.certificate.PoolRegistration, pycardano.certificate.PoolRetirement]]] = None
withdraws: Optional[pycardano.transaction.Withdrawals] = None
update: Any = None
auxiliary_data_hash: Optional[pycardano.hash.AuxiliaryDataHash] = None
validity_start: Optional[int] = None
mint: Optional[pycardano.transaction.MultiAsset] = None
script_data_hash: Optional[pycardano.hash.ScriptDataHash] = None
collateral: Optional[List[pycardano.transaction.TransactionInput]] = None
required_signers: Optional[List[pycardano.hash.VerificationKeyHash]] = None
network_id: Optional[pycardano.network.Network] = None
collateral_return: Optional[pycardano.transaction.TransactionOutput] = None
total_collateral: Optional[int] = None
reference_inputs: Optional[List[pycardano.transaction.TransactionInput]] = None
hash() bytes
property id: pycardano.hash.TransactionId
class pycardano.transaction.Transaction(transaction_body: 'TransactionBody', transaction_witness_set: 'TransactionWitnessSet', valid: 'bool' = True, auxiliary_data: 'Optional[AuxiliaryData]' = None)

Bases: pycardano.serialization.ArrayCBORSerializable

transaction_body: pycardano.transaction.TransactionBody
transaction_witness_set: pycardano.witness.TransactionWitnessSet
valid: bool = True
auxiliary_data: Optional[pycardano.metadata.AuxiliaryData] = None
property id: pycardano.hash.TransactionId
class pycardano.transaction.Withdrawals(*args, **kwargs)

Bases: pycardano.serialization.DictCBORSerializable

A disctionary of reward addresses to reward withdrawal amount.

Key is address bytes, value is an integer.

Examples

>>> address = Address.from_primitive("stake_test1upyz3gk6mw5he20apnwfn96cn9rscgvmmsxc9r86dh0k66gswf59n")
>>> Withdrawals({bytes(address): 1000000}) 
{b'\xe0H(\xa2\xda\xdb\xa9|\xa9\xfd\x0c\xdc\x99\x97X\x99G\x0c!\x9b\xdc\r\x82\x8c\xfam\xdfmi':
1000000}
KEY_TYPE

alias of bytes

VALUE_TYPE

alias of int