Module opshin.ledger.api_v3

The PlutusV3 ledger API. All classes involved in defining the ScriptContext passed by the node.

Expand source code
"""
The PlutusV3 ledger API.
All classes involved in defining the ScriptContext passed by the node.
"""

from dataclasses import dataclass
from typing import Dict, List, Union

from pycardano import Datum as Anything, PlutusData
from opshin.std.fractions import *


@dataclass(unsafe_hash=True)
class NoScriptHash(PlutusData):
    """
    Indicates that there is no script associated with an output
    """

    CONSTR_ID = 1


# A transaction id, a 64 bytes long hash of the transaction body (also called transaction hash).
#
# Example value: bytes.fromhex("842a4d37b036da6ab3c04331240e67d81746beb44f23ad79703e026705361956")
TxId = bytes


@dataclass(unsafe_hash=True)
class TrueData(PlutusData):
    """
    A Datum that represents True in Haskell implementations.
    It is thus used as an encoding for True in the ScriptContext.

    Example value: TrueData()
    """

    CONSTR_ID = 1


@dataclass(unsafe_hash=True)
class FalseData(PlutusData):
    """
    A Datum that represents False in Haskell implementations.
    It is thus used as an encoding for False in the ScriptContext.

    Example value: FalseData()
    """

    CONSTR_ID = 0


# A Datum that represents a boolean value in Haskell implementations.
# It is thus used as an encoding for booleans in the ScriptContext.
#
# Example value: TrueData()
BoolData = Union[TrueData, FalseData]


@dataclass(unsafe_hash=True)
class BoxedInt(PlutusData):
    """
    A boxed integer, used to represent an optional integer value
    """

    CONSTR_ID = 0
    value: int


@dataclass(unsafe_hash=True)
class NoValue(PlutusData):
    """
    An empty value (None case of Optional / Maybe)
    """

    CONSTR_ID = 1


Lovelace = int
OptionalInt = Union[BoxedInt, NoValue]
OptionalLovelace = OptionalInt


@dataclass(unsafe_hash=True)
class TxOutRef(PlutusData):
    """
    A reference to a transaction output (hash/id + index)
    """

    CONSTR_ID = 0

    id: TxId
    idx: int


# A public key hash, used to identify signatures provided by a wallet
# in aiken, this is called VerificationKeyHash
PubKeyHash = bytes


@dataclass(unsafe_hash=True)
class PubKeyCredential(PlutusData):
    """
    Part of an address that is authenticated by a public key hash

    Example value: PubKeyCredential(bytes.fromhex("c06ddaad12fc4ded18e56feac72957c1aa75fce6096b40e63ec88274"))
    """

    CONSTR_ID = 0
    credential_hash: PubKeyHash


# A validator hash, used to identify signatures provided by a smart contract
ValidatorHash = bytes


@dataclass(unsafe_hash=True)
class ScriptCredential(PlutusData):
    """
    Part of an address that is authenticated by a smart cotnract

    Example value: ScriptCredential(bytes.fromhex("c06ddaad12fc4ded18e56feac72957c1aa75fce6096b40e63ec88274"))
    """

    CONSTR_ID = 1
    credential_hash: ValidatorHash


# A credential, either smart contract or public key hash
Credential = Union[PubKeyCredential, ScriptCredential]


@dataclass(unsafe_hash=True)
class StakingHash(PlutusData):
    """
    Indicates that the stake of this address is controlled by the associated credential
    """

    CONSTR_ID = 0
    value: Credential


@dataclass(unsafe_hash=True)
class StakingPtr(PlutusData):
    """
    Indicates that the stake of this address is controlled by the associated pointer.

    In an address, a chain pointer refers to a point of the chain containing a stake key registration certificate.
    A point is identified by the 3 coordinates in this object.
    """

    CONSTR_ID = 1
    # an absolute slot number
    slot_no: int
    # a transaction index (within that slot)
    tx_index: int
    # a (delegation) certificate index (within that transaction)
    cert_index: int


# Part of an address that controls who can delegate the stake associated with an address
StakingCredential = Union[StakingHash, StakingPtr]


@dataclass(unsafe_hash=True)
class NoStakingCredential(PlutusData):
    """
    Indicates that this address has no staking credentials.
    Its funds can not be delegated.
    """

    CONSTR_ID = 1


@dataclass(unsafe_hash=True)
class SomeStakingCredential(PlutusData):
    """
    Indicates that this address has staking credentials.
    Its funds can be delegated by the credentialed user.
    """

    CONSTR_ID = 0
    staking_credential: StakingCredential


@dataclass(unsafe_hash=True)
class Address(PlutusData):
    """
    A Shelley address, consisting of a payment and staking credential
    """

    CONSTR_ID = 0

    payment_credential: Credential
    staking_credential: Union[NoStakingCredential, SomeStakingCredential]


# The policy Id of a token
PolicyId = bytes

# The name of a token in bytes (not textual representation!)
TokenName = bytes

# The Plutus representation of amounts of tokens being spent, sent or minted
# It is a two-layered dictionary that stores for each policy id and token name
# the amount of the token that is being sent/minted/burned etc
#
# Lovelace is represented with policy id b"" and token name b""
Value = Dict[PolicyId, Dict[TokenName, int]]

# A hash of a Datum
DatumHash = bytes


@dataclass(unsafe_hash=True)
class SomeDatumHash(PlutusData):
    """
    Indicates that there is a datum associated with this output, which has the given hash.
    """

    CONSTR_ID = 1
    datum_hash: DatumHash


@dataclass(unsafe_hash=True)
class SomeScriptHash(PlutusData):
    """
    Indicates that there is a script associated with this output, which has the given hash.
    """

    CONSTR_ID = 0
    script_hash: DatumHash


MaybeScriptHash = Union[SomeScriptHash, NoScriptHash]

# The abstract super type of any object in opshin.
# Use if you don't know what kind of object is being passed or if it doesn't matter.
BuiltinData = Anything


# An abstract type annotation that something is supposed to be used as a redeemer.
Redeemer = BuiltinData


# An abstract type annotation that something is supposed to be used as a datum.
Datum = BuiltinData


@dataclass(unsafe_hash=True)
class NoOutputDatum(PlutusData):
    """
    Indicates that there is no datum associated with an output
    """

    CONSTR_ID = 0


@dataclass(unsafe_hash=True)
class SomeOutputDatumHash(PlutusData):
    """
    Indicates that there is an datum associated with an output, which has the attached hash
    """

    CONSTR_ID = 1
    datum_hash: DatumHash


@dataclass(unsafe_hash=True)
class SomeOutputDatum(PlutusData):
    """
    Indicates that there is an datum associated with an output, which is inlined and equal to the attached datum
    """

    CONSTR_ID = 2
    datum: Datum


# Possible cases of datum association with an output
OutputDatum = Union[NoOutputDatum, SomeOutputDatumHash, SomeOutputDatum]


@dataclass(unsafe_hash=True)
class NoScriptHash(PlutusData):
    """
    Indicates that there is no script associated with an output
    """

    CONSTR_ID = 1


@dataclass(unsafe_hash=True)
class TxOut(PlutusData):
    """
    The plutus representation of an transaction output, consisting of
    - address: address owning this output
    - value: tokens associated with this output
    - datum: datum associated with this output
    - reference_script: reference script associated with this output
    """

    CONSTR_ID = 0

    address: Address
    value: Value
    datum: OutputDatum
    reference_script: Union[NoScriptHash, SomeScriptHash]


@dataclass(unsafe_hash=True)
class TxInInfo(PlutusData):
    """
    The plutus representation of an transaction output, that is consumed by the transaction.
    """

    CONSTR_ID = 0

    out_ref: TxOutRef
    resolved: TxOut


@dataclass(unsafe_hash=True)
class DCertDelegRegKey(PlutusData):
    CONSTR_ID = 0
    value: StakingCredential


@dataclass(unsafe_hash=True)
class DCertDelegDeRegKey(PlutusData):
    CONSTR_ID = 1
    value: StakingCredential


@dataclass(unsafe_hash=True)
class DCertDelegDelegate(PlutusData):
    CONSTR_ID = 2
    delegator: StakingCredential
    delegatee: PubKeyHash


@dataclass(unsafe_hash=True)
class DCertPoolRegister(PlutusData):
    CONSTR_ID = 3
    pool_id: PubKeyHash
    pool_vfr: PubKeyHash


@dataclass(unsafe_hash=True)
class DCertPoolRetire(PlutusData):
    CONSTR_ID = 4
    retirement_certificate: PubKeyHash
    epoch: int


@dataclass(unsafe_hash=True)
class DCertGenesis(PlutusData):
    CONSTR_ID = 5


@dataclass(unsafe_hash=True)
class DCertMir(PlutusData):
    CONSTR_ID = 6


Certificate = Union[
    DCertDelegRegKey,
    DCertDelegDeRegKey,
    DCertDelegDelegate,
    DCertPoolRegister,
    DCertPoolRetire,
    DCertGenesis,
    DCertMir,
]


POSIXTime = int


@dataclass(unsafe_hash=True)
class NegInfPOSIXTime(PlutusData):
    """
    Negative infinite POSIX time, used to indicate that there is no lower bound for the execution of this transaction
    """

    CONSTR_ID = 0


@dataclass(unsafe_hash=True)
class FinitePOSIXTime(PlutusData):
    """
    Finite POSIX time, used to indicate that there is a lower or upper bound for the execution of this transaction
    """

    CONSTR_ID = 1
    time: POSIXTime


@dataclass(unsafe_hash=True)
class PosInfPOSIXTime(PlutusData):
    """
    Infinite POSIX time, used to indicate that there is no upper bound for the execution of this transaction
    """

    CONSTR_ID = 2


ExtendedPOSIXTime = Union[NegInfPOSIXTime, FinitePOSIXTime, PosInfPOSIXTime]


@dataclass(unsafe_hash=True)
class UpperBoundPOSIXTime(PlutusData):
    """
    Upper bound for the execution of this transaction
    """

    CONSTR_ID = 0
    limit: ExtendedPOSIXTime
    closed: BoolData


@dataclass(unsafe_hash=True)
class LowerBoundPOSIXTime(PlutusData):
    """
    Lower bound for the execution of this transaction
    """

    CONSTR_ID = 0
    limit: ExtendedPOSIXTime
    closed: BoolData


@dataclass(unsafe_hash=True)
class POSIXTimeRange(PlutusData):
    """
    Time range in which this transaction can be executed
    """

    CONSTR_ID = 0

    lower_bound: LowerBoundPOSIXTime
    upper_bound: UpperBoundPOSIXTime


@dataclass(unsafe_hash=True)
class Minting(PlutusData):
    """
    Script purpose indicating that the given policy id is being minted or burned
    """

    CONSTR_ID = 0
    policy_id: PolicyId


@dataclass(unsafe_hash=True)
class Spending(PlutusData):
    """
    Script purpose indicating that the given transaction output is being spent, which is
    owned by the invoked contract
    """

    CONSTR_ID = 1
    tx_out_ref: TxOutRef


@dataclass(unsafe_hash=True)
class Withdrawing(PlutusData):
    """
    For scripts that validate reward withdrawals from a reward account.
    The argument identifies the target reward account.
    """

    CONSTR_ID = 2
    staking_credential: StakingCredential


@dataclass(unsafe_hash=True)
class ConstitutionalCommitteeMember(PlutusData):
    CONSTR_ID = 0
    credential: Credential


@dataclass(unsafe_hash=True)
class DelegateRepresentative(PlutusData):
    CONSTR_ID = 1
    credential: Credential


@dataclass(unsafe_hash=True)
class StakePool(PlutusData):
    CONSTR_ID = 2
    verification_key_hash: PubKeyHash


Voter = Union[ConstitutionalCommitteeMember, DelegateRepresentative, StakePool]


@dataclass(unsafe_hash=True)
class GovernanceActionId(PlutusData):
    CONSTR_ID = 0
    transaction: TxId
    # Note: is a non-negative index to the proposal
    proposal_procedure: int


@dataclass(unsafe_hash=True)
class VoteNo(PlutusData):
    CONSTR_ID = 0


@dataclass(unsafe_hash=True)
class VoteYes(PlutusData):
    CONSTR_ID = 1


@dataclass(unsafe_hash=True)
class VoteAbstain(PlutusData):
    CONSTR_ID = 2


Vote = Union[VoteNo, VoteYes, VoteAbstain]


@dataclass(unsafe_hash=True)
class SomeGovernanceActionId(PlutusData):
    """
    Indicates that there is an governance action id associated with this output, given in the first field
    """

    CONSTR_ID = 0
    governance_action_id: GovernanceActionId


@dataclass(unsafe_hash=True)
class NoGovernanceActionId(PlutusData):
    """
    Indicates that there is no governance action id associated with this output
    """

    CONSTR_ID = 1


# To convert these values to interpretable values,
# use the index -> value mapping from aiken
# https://github.com/aiken-lang/stdlib/blob/2.2.0/lib/cardano/governance/protocol_parameters.ak
# Explicit mapping functions may follow
ProtocolParametersUpdate = Dict[int, Datum]

MaybeGovernanceActionId = Union[SomeGovernanceActionId, NoGovernanceActionId]

# Below are Governance Actions (GAXXX)


@dataclass(unsafe_hash=True)
class GAProtocolParameters(PlutusData):
    CONSTR_ID = 0
    # The last governance action of type 'ProtocolParameters'. They must all form a chain.
    ancestor: MaybeGovernanceActionId
    # The new proposed protocol parameters. Only values set to `Some` are relevant.
    new_parameters: ProtocolParametersUpdate
    # The optional guardrails script defined in the constitution.
    # The script is executed by the ledger in addition to the hard-coded ledger rules.
    # It must pass for the new protocol parameters to be deemed valid.
    guardrails: Union[SomeScriptHash, NoScriptHash]


@dataclass(unsafe_hash=True)
class ProtocolVersion(PlutusData):
    CONSTR_ID = 0
    major: int
    minor: int


@dataclass(unsafe_hash=True)
class GAHardFork(PlutusData):
    CONSTR_ID = 1
    # The last governance action of type 'HardFork'. They must all form a chain.
    ancestor: MaybeGovernanceActionId
    # The new proposed version. A few rules apply to proposing new versions:
    #
    # - The `major` component, if incremented, must be exactly one more than the current.
    # - The `minor` component, if incremented, must be exactly one more than the current.
    # - If the `major` component is incremented, `minor` must be set to `0`.
    # - Neither `minor` nor `major` can be decremented.
    new_version: ProtocolVersion


@dataclass(unsafe_hash=True)
class GATreasuryWithdrawal(PlutusData):
    CONSTR_ID = 2
    #  A collection of beneficiaries, which can be plain verification key
    #  hashes or script hashes (e.g. DAO).
    beneficiaries: Dict[Credential, Lovelace]
    # The optional guardrails script defined in the constitution. The script
    # is executed by the ledger in addition to the hard-coded ledger rules.
    #
    # It must pass for the withdrawals to be authorized.
    guardrails: SomeScriptHash


@dataclass(unsafe_hash=True)
class GANoConfidence(PlutusData):
    CONSTR_ID = 3
    # The last governance action of type `NoConfidence` or `ConstitutionalCommittee`.
    # They must all form a chain.
    ancestor: MaybeGovernanceActionId


@dataclass(unsafe_hash=True)
class GAConstitutionalCommittee(PlutusData):
    CONSTR_ID = 4
    # The last governance action of type `NoConfidence` or `ConstitutionalCommittee`.
    # They must all / form a chain.
    ancestor: MaybeGovernanceActionId
    # Constitutional members to be removed.
    evicted_members: List[Credential]
    # Constitutional members to be added.
    # Int value is a "mandate", an epoch number after which constitutional committee member
    # mandate expires.
    added_members: Dict[Credential, int]
    # The new quorum value, as a ratio of a numerator and a denominator.
    # The quorum specifies the threshold of 'Yes' votes necessary for the constitutional committee to accept a proposal procedure.
    quorum: Fraction


@dataclass(unsafe_hash=True)
class Constitution(PlutusData):
    CONSTR_ID = 0
    # Guardrails for operations as a script
    guardrails: MaybeScriptHash


@dataclass(unsafe_hash=True)
class GANewConstitution(PlutusData):
    CONSTR_ID = 5
    # The last governance action of type `Constitution` or `ConstitutionalCommittee`.
    # They must all form a chain.
    ancestor: MaybeGovernanceActionId
    constitution: Constitution


@dataclass(unsafe_hash=True)
class GAInfo(PlutusData):
    # No effect on chain, only informative nature
    CONSTR_ID = 6


GovernanceAction = Union[
    GAProtocolParameters,
    GAHardFork,
    GATreasuryWithdrawal,
    GANoConfidence,
    GAConstitutionalCommittee,
    GANewConstitution,
    GAInfo,
]


@dataclass(unsafe_hash=True)
class ProposalProcedure(PlutusData):
    """
    Represents a proposal procedure in governance.
    """

    deposit: Lovelace
    return_address: Credential
    governance_action: GovernanceAction


@dataclass(unsafe_hash=True)
class Publishing(PlutusData):
    """
    Needed when delegating to a pool using stake credentials defined as a
    custom script. This purpose is also triggered when de-registering such
    stake credentials.

    The index is a 0-based index of the given `Certficate` in `certificates`.
    """

    CONSTR_ID = 3
    certificate_index: int
    certificate: Certificate


@dataclass(unsafe_hash=True)
class Voting(PlutusData):
    """
    Voting for a type of voter using a governance action id to vote
    yes / no / abstain inside a transaction.
    The voter is who is doing the governance action.
    """

    CONSTR_ID = 4
    voter: Voter


@dataclass(unsafe_hash=True)
class Proposing(PlutusData):
    """
    Used to propose a governance action.
    A 0-based index of the given `ProposalProcedure` in `proposal_procedures`.
    """

    CONSTR_ID = 5
    proposal_index: int
    proposal_procedure: ProposalProcedure


# The reason that this script is being invoked
ScriptPurpose = Union[Minting, Spending, Withdrawing, Publishing, Voting, Proposing]


@dataclass(unsafe_hash=True)
class TxInfo(PlutusData):
    """
    A complex agglomeration of everything that could be of interest to the executed script, regarding the transaction
    that invoked the script
    """

    CONSTR_ID = 0
    inputs: List[TxInInfo]
    reference_inputs: List[TxInInfo]
    outputs: List[TxOut]
    fee: Lovelace
    mint: Value
    certificates: List[Certificate]
    # NOTE: Withdrawals are ordered by ascending Credential. Yet, note that `Script` credentials are treated as **lower values** than `VerificationKey` credentials.
    withdrawals: Dict[StakingCredential, int]
    validity_range: POSIXTimeRange
    # NOTE: Redeemers are ordered by ascending ScriptPurpose.
    signatories: List[PubKeyHash]
    redeemers: Dict[ScriptPurpose, Redeemer]
    datums: Dict[DatumHash, Datum]
    id: TxId
    # NOTE: Votes are ordered by ascending Voter and GovernanceActionId. First constructor variants in a type are treated as lower indices; except for Credential where `Script` credentials are treated as **lower values** than `VerificationKey` credentials.
    votes: Dict[Voter, Dict[GovernanceActionId, Vote]]
    proposal_procedures: List[ProposalProcedure]
    current_treasury_amount: OptionalLovelace
    treasury_donation: OptionalLovelace


@dataclass(unsafe_hash=True)
class ScriptContext(PlutusData):
    """
    Auxiliary information about the transaction and reason for invocation of the called script.
    """

    CONSTR_ID = 0
    transaction: TxInfo
    redeemer: Redeemer
    purpose: ScriptPurpose

Classes

class Address (payment_credential: PubKeyCredential | ScriptCredential, staking_credential: NoStakingCredential | SomeStakingCredential)

A Shelley address, consisting of a payment and staking credential

Expand source code
@dataclass(unsafe_hash=True)
class Address(PlutusData):
    """
    A Shelley address, consisting of a payment and staking credential
    """

    CONSTR_ID = 0

    payment_credential: Credential
    staking_credential: Union[NoStakingCredential, SomeStakingCredential]

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var payment_credentialPubKeyCredential | ScriptCredential
var staking_credentialNoStakingCredential | SomeStakingCredential
class BoxedInt (value: int)

A boxed integer, used to represent an optional integer value

Expand source code
@dataclass(unsafe_hash=True)
class BoxedInt(PlutusData):
    """
    A boxed integer, used to represent an optional integer value
    """

    CONSTR_ID = 0
    value: int

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var value : int
class Constitution (guardrails: SomeScriptHash | NoScriptHash)

Constitution(guardrails: Union[opshin.ledger.api_v3.SomeScriptHash, opshin.ledger.api_v3.NoScriptHash])

Expand source code
@dataclass(unsafe_hash=True)
class Constitution(PlutusData):
    CONSTR_ID = 0
    # Guardrails for operations as a script
    guardrails: MaybeScriptHash

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var guardrailsSomeScriptHash | NoScriptHash
class ConstitutionalCommitteeMember (credential: PubKeyCredential | ScriptCredential)

ConstitutionalCommitteeMember(credential: Union[opshin.ledger.api_v3.PubKeyCredential, opshin.ledger.api_v3.ScriptCredential])

Expand source code
@dataclass(unsafe_hash=True)
class ConstitutionalCommitteeMember(PlutusData):
    CONSTR_ID = 0
    credential: Credential

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var credentialPubKeyCredential | ScriptCredential
class DCertDelegDeRegKey (value: StakingHash | StakingPtr)

DCertDelegDeRegKey(value: Union[opshin.ledger.api_v3.StakingHash, opshin.ledger.api_v3.StakingPtr])

Expand source code
@dataclass(unsafe_hash=True)
class DCertDelegDeRegKey(PlutusData):
    CONSTR_ID = 1
    value: StakingCredential

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var valueStakingHash | StakingPtr
class DCertDelegDelegate (delegator: StakingHash | StakingPtr, delegatee: bytes)

DCertDelegDelegate(delegator: Union[opshin.ledger.api_v3.StakingHash, opshin.ledger.api_v3.StakingPtr], delegatee: bytes)

Expand source code
@dataclass(unsafe_hash=True)
class DCertDelegDelegate(PlutusData):
    CONSTR_ID = 2
    delegator: StakingCredential
    delegatee: PubKeyHash

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var delegatee : bytes
var delegatorStakingHash | StakingPtr
class DCertDelegRegKey (value: StakingHash | StakingPtr)

DCertDelegRegKey(value: Union[opshin.ledger.api_v3.StakingHash, opshin.ledger.api_v3.StakingPtr])

Expand source code
@dataclass(unsafe_hash=True)
class DCertDelegRegKey(PlutusData):
    CONSTR_ID = 0
    value: StakingCredential

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var valueStakingHash | StakingPtr
class DCertGenesis

DCertGenesis()

Expand source code
@dataclass(unsafe_hash=True)
class DCertGenesis(PlutusData):
    CONSTR_ID = 5

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID
class DCertMir

DCertMir()

Expand source code
@dataclass(unsafe_hash=True)
class DCertMir(PlutusData):
    CONSTR_ID = 6

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID
class DCertPoolRegister (pool_id: bytes, pool_vfr: bytes)

DCertPoolRegister(pool_id: bytes, pool_vfr: bytes)

Expand source code
@dataclass(unsafe_hash=True)
class DCertPoolRegister(PlutusData):
    CONSTR_ID = 3
    pool_id: PubKeyHash
    pool_vfr: PubKeyHash

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var pool_id : bytes
var pool_vfr : bytes
class DCertPoolRetire (retirement_certificate: bytes, epoch: int)

DCertPoolRetire(retirement_certificate: bytes, epoch: int)

Expand source code
@dataclass(unsafe_hash=True)
class DCertPoolRetire(PlutusData):
    CONSTR_ID = 4
    retirement_certificate: PubKeyHash
    epoch: int

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var epoch : int
var retirement_certificate : bytes
class DelegateRepresentative (credential: PubKeyCredential | ScriptCredential)

DelegateRepresentative(credential: Union[opshin.ledger.api_v3.PubKeyCredential, opshin.ledger.api_v3.ScriptCredential])

Expand source code
@dataclass(unsafe_hash=True)
class DelegateRepresentative(PlutusData):
    CONSTR_ID = 1
    credential: Credential

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var credentialPubKeyCredential | ScriptCredential
class FalseData

A Datum that represents False in Haskell implementations. It is thus used as an encoding for False in the ScriptContext.

Example value: FalseData()

Expand source code
@dataclass(unsafe_hash=True)
class FalseData(PlutusData):
    """
    A Datum that represents False in Haskell implementations.
    It is thus used as an encoding for False in the ScriptContext.

    Example value: FalseData()
    """

    CONSTR_ID = 0

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID
class FinitePOSIXTime (time: int)

Finite POSIX time, used to indicate that there is a lower or upper bound for the execution of this transaction

Expand source code
@dataclass(unsafe_hash=True)
class FinitePOSIXTime(PlutusData):
    """
    Finite POSIX time, used to indicate that there is a lower or upper bound for the execution of this transaction
    """

    CONSTR_ID = 1
    time: POSIXTime

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var time : int
class GAConstitutionalCommittee (ancestor: SomeGovernanceActionId | NoGovernanceActionId, evicted_members: List[PubKeyCredential | ScriptCredential], added_members: Dict[PubKeyCredential | ScriptCredential, int], quorum: Fraction)

GAConstitutionalCommittee(ancestor: Union[opshin.ledger.api_v3.SomeGovernanceActionId, opshin.ledger.api_v3.NoGovernanceActionId], evicted_members: List[Union[opshin.ledger.api_v3.PubKeyCredential, opshin.ledger.api_v3.ScriptCredential]], added_members: Dict[Union[opshin.ledger.api_v3.PubKeyCredential, opshin.ledger.api_v3.ScriptCredential], int], quorum: opshin.std.fractions.Fraction)

Expand source code
@dataclass(unsafe_hash=True)
class GAConstitutionalCommittee(PlutusData):
    CONSTR_ID = 4
    # The last governance action of type `NoConfidence` or `ConstitutionalCommittee`.
    # They must all / form a chain.
    ancestor: MaybeGovernanceActionId
    # Constitutional members to be removed.
    evicted_members: List[Credential]
    # Constitutional members to be added.
    # Int value is a "mandate", an epoch number after which constitutional committee member
    # mandate expires.
    added_members: Dict[Credential, int]
    # The new quorum value, as a ratio of a numerator and a denominator.
    # The quorum specifies the threshold of 'Yes' votes necessary for the constitutional committee to accept a proposal procedure.
    quorum: Fraction

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var added_members : Dict[PubKeyCredential | ScriptCredential, int]
var ancestorSomeGovernanceActionId | NoGovernanceActionId
var evicted_members : List[PubKeyCredential | ScriptCredential]
var quorumFraction
class GAHardFork (ancestor: SomeGovernanceActionId | NoGovernanceActionId, new_version: ProtocolVersion)

GAHardFork(ancestor: Union[opshin.ledger.api_v3.SomeGovernanceActionId, opshin.ledger.api_v3.NoGovernanceActionId], new_version: opshin.ledger.api_v3.ProtocolVersion)

Expand source code
@dataclass(unsafe_hash=True)
class GAHardFork(PlutusData):
    CONSTR_ID = 1
    # The last governance action of type 'HardFork'. They must all form a chain.
    ancestor: MaybeGovernanceActionId
    # The new proposed version. A few rules apply to proposing new versions:
    #
    # - The `major` component, if incremented, must be exactly one more than the current.
    # - The `minor` component, if incremented, must be exactly one more than the current.
    # - If the `major` component is incremented, `minor` must be set to `0`.
    # - Neither `minor` nor `major` can be decremented.
    new_version: ProtocolVersion

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var ancestorSomeGovernanceActionId | NoGovernanceActionId
var new_versionProtocolVersion
class GAInfo

GAInfo()

Expand source code
@dataclass(unsafe_hash=True)
class GAInfo(PlutusData):
    # No effect on chain, only informative nature
    CONSTR_ID = 6

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID
class GANewConstitution (ancestor: SomeGovernanceActionId | NoGovernanceActionId, constitution: Constitution)

GANewConstitution(ancestor: Union[opshin.ledger.api_v3.SomeGovernanceActionId, opshin.ledger.api_v3.NoGovernanceActionId], constitution: opshin.ledger.api_v3.Constitution)

Expand source code
@dataclass(unsafe_hash=True)
class GANewConstitution(PlutusData):
    CONSTR_ID = 5
    # The last governance action of type `Constitution` or `ConstitutionalCommittee`.
    # They must all form a chain.
    ancestor: MaybeGovernanceActionId
    constitution: Constitution

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var ancestorSomeGovernanceActionId | NoGovernanceActionId
var constitutionConstitution
class GANoConfidence (ancestor: SomeGovernanceActionId | NoGovernanceActionId)

GANoConfidence(ancestor: Union[opshin.ledger.api_v3.SomeGovernanceActionId, opshin.ledger.api_v3.NoGovernanceActionId])

Expand source code
@dataclass(unsafe_hash=True)
class GANoConfidence(PlutusData):
    CONSTR_ID = 3
    # The last governance action of type `NoConfidence` or `ConstitutionalCommittee`.
    # They must all form a chain.
    ancestor: MaybeGovernanceActionId

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var ancestorSomeGovernanceActionId | NoGovernanceActionId
class GAProtocolParameters (ancestor: SomeGovernanceActionId | NoGovernanceActionId, new_parameters: Dict[int, pycardano.plutus.PlutusData | dict | int | bytes | pycardano.serialization.IndefiniteList | pycardano.serialization.RawCBOR | pycardano.plutus.RawPlutusData], guardrails: SomeScriptHash | NoScriptHash)

GAProtocolParameters(ancestor: Union[opshin.ledger.api_v3.SomeGovernanceActionId, opshin.ledger.api_v3.NoGovernanceActionId], new_parameters: Dict[int, Union[pycardano.plutus.PlutusData, dict, int, bytes, pycardano.serialization.IndefiniteList, pycardano.serialization.RawCBOR, pycardano.plutus.RawPlutusData]], guardrails: Union[opshin.ledger.api_v3.SomeScriptHash, opshin.ledger.api_v3.NoScriptHash])

Expand source code
@dataclass(unsafe_hash=True)
class GAProtocolParameters(PlutusData):
    CONSTR_ID = 0
    # The last governance action of type 'ProtocolParameters'. They must all form a chain.
    ancestor: MaybeGovernanceActionId
    # The new proposed protocol parameters. Only values set to `Some` are relevant.
    new_parameters: ProtocolParametersUpdate
    # The optional guardrails script defined in the constitution.
    # The script is executed by the ledger in addition to the hard-coded ledger rules.
    # It must pass for the new protocol parameters to be deemed valid.
    guardrails: Union[SomeScriptHash, NoScriptHash]

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var ancestorSomeGovernanceActionId | NoGovernanceActionId
var guardrailsSomeScriptHash | NoScriptHash
var new_parameters : Dict[int, pycardano.plutus.PlutusData | dict | int | bytes | pycardano.serialization.IndefiniteList | pycardano.serialization.RawCBOR | pycardano.plutus.RawPlutusData]
class GATreasuryWithdrawal (beneficiaries: Dict[PubKeyCredential | ScriptCredential, int], guardrails: SomeScriptHash)

GATreasuryWithdrawal(beneficiaries: Dict[Union[opshin.ledger.api_v3.PubKeyCredential, opshin.ledger.api_v3.ScriptCredential], int], guardrails: opshin.ledger.api_v3.SomeScriptHash)

Expand source code
@dataclass(unsafe_hash=True)
class GATreasuryWithdrawal(PlutusData):
    CONSTR_ID = 2
    #  A collection of beneficiaries, which can be plain verification key
    #  hashes or script hashes (e.g. DAO).
    beneficiaries: Dict[Credential, Lovelace]
    # The optional guardrails script defined in the constitution. The script
    # is executed by the ledger in addition to the hard-coded ledger rules.
    #
    # It must pass for the withdrawals to be authorized.
    guardrails: SomeScriptHash

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var beneficiaries : Dict[PubKeyCredential | ScriptCredential, int]
var guardrailsSomeScriptHash
class GovernanceActionId (transaction: bytes, proposal_procedure: int)

GovernanceActionId(transaction: bytes, proposal_procedure: int)

Expand source code
@dataclass(unsafe_hash=True)
class GovernanceActionId(PlutusData):
    CONSTR_ID = 0
    transaction: TxId
    # Note: is a non-negative index to the proposal
    proposal_procedure: int

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var proposal_procedure : int
var transaction : bytes
class LowerBoundPOSIXTime (limit: NegInfPOSIXTime | FinitePOSIXTime | PosInfPOSIXTime, closed: TrueData | FalseData)

Lower bound for the execution of this transaction

Expand source code
@dataclass(unsafe_hash=True)
class LowerBoundPOSIXTime(PlutusData):
    """
    Lower bound for the execution of this transaction
    """

    CONSTR_ID = 0
    limit: ExtendedPOSIXTime
    closed: BoolData

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var closedTrueData | FalseData
var limitNegInfPOSIXTime | FinitePOSIXTime | PosInfPOSIXTime
class Minting (policy_id: bytes)

Script purpose indicating that the given policy id is being minted or burned

Expand source code
@dataclass(unsafe_hash=True)
class Minting(PlutusData):
    """
    Script purpose indicating that the given policy id is being minted or burned
    """

    CONSTR_ID = 0
    policy_id: PolicyId

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var policy_id : bytes
class NegInfPOSIXTime

Negative infinite POSIX time, used to indicate that there is no lower bound for the execution of this transaction

Expand source code
@dataclass(unsafe_hash=True)
class NegInfPOSIXTime(PlutusData):
    """
    Negative infinite POSIX time, used to indicate that there is no lower bound for the execution of this transaction
    """

    CONSTR_ID = 0

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID
class NoGovernanceActionId

Indicates that there is no governance action id associated with this output

Expand source code
@dataclass(unsafe_hash=True)
class NoGovernanceActionId(PlutusData):
    """
    Indicates that there is no governance action id associated with this output
    """

    CONSTR_ID = 1

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID
class NoOutputDatum

Indicates that there is no datum associated with an output

Expand source code
@dataclass(unsafe_hash=True)
class NoOutputDatum(PlutusData):
    """
    Indicates that there is no datum associated with an output
    """

    CONSTR_ID = 0

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID
class NoScriptHash

Indicates that there is no script associated with an output

Expand source code
@dataclass(unsafe_hash=True)
class NoScriptHash(PlutusData):
    """
    Indicates that there is no script associated with an output
    """

    CONSTR_ID = 1

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID
class NoStakingCredential

Indicates that this address has no staking credentials. Its funds can not be delegated.

Expand source code
@dataclass(unsafe_hash=True)
class NoStakingCredential(PlutusData):
    """
    Indicates that this address has no staking credentials.
    Its funds can not be delegated.
    """

    CONSTR_ID = 1

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID
class NoValue

An empty value (None case of Optional / Maybe)

Expand source code
@dataclass(unsafe_hash=True)
class NoValue(PlutusData):
    """
    An empty value (None case of Optional / Maybe)
    """

    CONSTR_ID = 1

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID
class POSIXTimeRange (lower_bound: LowerBoundPOSIXTime, upper_bound: UpperBoundPOSIXTime)

Time range in which this transaction can be executed

Expand source code
@dataclass(unsafe_hash=True)
class POSIXTimeRange(PlutusData):
    """
    Time range in which this transaction can be executed
    """

    CONSTR_ID = 0

    lower_bound: LowerBoundPOSIXTime
    upper_bound: UpperBoundPOSIXTime

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var lower_boundLowerBoundPOSIXTime
var upper_boundUpperBoundPOSIXTime
class PosInfPOSIXTime

Infinite POSIX time, used to indicate that there is no upper bound for the execution of this transaction

Expand source code
@dataclass(unsafe_hash=True)
class PosInfPOSIXTime(PlutusData):
    """
    Infinite POSIX time, used to indicate that there is no upper bound for the execution of this transaction
    """

    CONSTR_ID = 2

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID
class ProposalProcedure (deposit: int, return_address: PubKeyCredential | ScriptCredential, governance_action: GAProtocolParameters | GAHardFork | GATreasuryWithdrawal | GANoConfidence | GAConstitutionalCommittee | GANewConstitution | GAInfo)

Represents a proposal procedure in governance.

Expand source code
@dataclass(unsafe_hash=True)
class ProposalProcedure(PlutusData):
    """
    Represents a proposal procedure in governance.
    """

    deposit: Lovelace
    return_address: Credential
    governance_action: GovernanceAction

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Instance variables

var deposit : int
var governance_actionGAProtocolParameters | GAHardFork | GATreasuryWithdrawal | GANoConfidence | GAConstitutionalCommittee | GANewConstitution | GAInfo
var return_addressPubKeyCredential | ScriptCredential
class Proposing (proposal_index: int, proposal_procedure: ProposalProcedure)

Used to propose a governance action. A 0-based index of the given ProposalProcedure in proposal_procedures.

Expand source code
@dataclass(unsafe_hash=True)
class Proposing(PlutusData):
    """
    Used to propose a governance action.
    A 0-based index of the given `ProposalProcedure` in `proposal_procedures`.
    """

    CONSTR_ID = 5
    proposal_index: int
    proposal_procedure: ProposalProcedure

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var proposal_index : int
var proposal_procedureProposalProcedure
class ProtocolVersion (major: int, minor: int)

ProtocolVersion(major: int, minor: int)

Expand source code
@dataclass(unsafe_hash=True)
class ProtocolVersion(PlutusData):
    CONSTR_ID = 0
    major: int
    minor: int

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var major : int
var minor : int
class PubKeyCredential (credential_hash: bytes)

Part of an address that is authenticated by a public key hash

Example value: PubKeyCredential(bytes.fromhex("c06ddaad12fc4ded18e56feac72957c1aa75fce6096b40e63ec88274"))

Expand source code
@dataclass(unsafe_hash=True)
class PubKeyCredential(PlutusData):
    """
    Part of an address that is authenticated by a public key hash

    Example value: PubKeyCredential(bytes.fromhex("c06ddaad12fc4ded18e56feac72957c1aa75fce6096b40e63ec88274"))
    """

    CONSTR_ID = 0
    credential_hash: PubKeyHash

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var credential_hash : bytes
class Publishing (certificate_index: int, certificate: DCertDelegRegKey | DCertDelegDeRegKey | DCertDelegDelegate | DCertPoolRegister | DCertPoolRetire | DCertGenesis | DCertMir)

Needed when delegating to a pool using stake credentials defined as a custom script. This purpose is also triggered when de-registering such stake credentials.

The index is a 0-based index of the given Certficate in certificates.

Expand source code
@dataclass(unsafe_hash=True)
class Publishing(PlutusData):
    """
    Needed when delegating to a pool using stake credentials defined as a
    custom script. This purpose is also triggered when de-registering such
    stake credentials.

    The index is a 0-based index of the given `Certficate` in `certificates`.
    """

    CONSTR_ID = 3
    certificate_index: int
    certificate: Certificate

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var certificateDCertDelegRegKey | DCertDelegDeRegKey | DCertDelegDelegate | DCertPoolRegister | DCertPoolRetire | DCertGenesis | DCertMir
var certificate_index : int
class ScriptContext (transaction: TxInfo, redeemer: pycardano.plutus.PlutusData | dict | int | bytes | pycardano.serialization.IndefiniteList | pycardano.serialization.RawCBOR | pycardano.plutus.RawPlutusData, purpose: Minting | Spending | Withdrawing | Publishing | Voting | Proposing)

Auxiliary information about the transaction and reason for invocation of the called script.

Expand source code
@dataclass(unsafe_hash=True)
class ScriptContext(PlutusData):
    """
    Auxiliary information about the transaction and reason for invocation of the called script.
    """

    CONSTR_ID = 0
    transaction: TxInfo
    redeemer: Redeemer
    purpose: ScriptPurpose

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var purposeMinting | Spending | Withdrawing | Publishing | Voting | Proposing
var redeemer : pycardano.plutus.PlutusData | dict | int | bytes | pycardano.serialization.IndefiniteList | pycardano.serialization.RawCBOR | pycardano.plutus.RawPlutusData
var transactionTxInfo
class ScriptCredential (credential_hash: bytes)

Part of an address that is authenticated by a smart cotnract

Example value: ScriptCredential(bytes.fromhex("c06ddaad12fc4ded18e56feac72957c1aa75fce6096b40e63ec88274"))

Expand source code
@dataclass(unsafe_hash=True)
class ScriptCredential(PlutusData):
    """
    Part of an address that is authenticated by a smart cotnract

    Example value: ScriptCredential(bytes.fromhex("c06ddaad12fc4ded18e56feac72957c1aa75fce6096b40e63ec88274"))
    """

    CONSTR_ID = 1
    credential_hash: ValidatorHash

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var credential_hash : bytes
class SomeDatumHash (datum_hash: bytes)

Indicates that there is a datum associated with this output, which has the given hash.

Expand source code
@dataclass(unsafe_hash=True)
class SomeDatumHash(PlutusData):
    """
    Indicates that there is a datum associated with this output, which has the given hash.
    """

    CONSTR_ID = 1
    datum_hash: DatumHash

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var datum_hash : bytes
class SomeGovernanceActionId (governance_action_id: GovernanceActionId)

Indicates that there is an governance action id associated with this output, given in the first field

Expand source code
@dataclass(unsafe_hash=True)
class SomeGovernanceActionId(PlutusData):
    """
    Indicates that there is an governance action id associated with this output, given in the first field
    """

    CONSTR_ID = 0
    governance_action_id: GovernanceActionId

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var governance_action_idGovernanceActionId
class SomeOutputDatum (datum: pycardano.plutus.PlutusData | dict | int | bytes | pycardano.serialization.IndefiniteList | pycardano.serialization.RawCBOR | pycardano.plutus.RawPlutusData)

Indicates that there is an datum associated with an output, which is inlined and equal to the attached datum

Expand source code
@dataclass(unsafe_hash=True)
class SomeOutputDatum(PlutusData):
    """
    Indicates that there is an datum associated with an output, which is inlined and equal to the attached datum
    """

    CONSTR_ID = 2
    datum: Datum

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var datum : pycardano.plutus.PlutusData | dict | int | bytes | pycardano.serialization.IndefiniteList | pycardano.serialization.RawCBOR | pycardano.plutus.RawPlutusData
class SomeOutputDatumHash (datum_hash: bytes)

Indicates that there is an datum associated with an output, which has the attached hash

Expand source code
@dataclass(unsafe_hash=True)
class SomeOutputDatumHash(PlutusData):
    """
    Indicates that there is an datum associated with an output, which has the attached hash
    """

    CONSTR_ID = 1
    datum_hash: DatumHash

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var datum_hash : bytes
class SomeScriptHash (script_hash: bytes)

Indicates that there is a script associated with this output, which has the given hash.

Expand source code
@dataclass(unsafe_hash=True)
class SomeScriptHash(PlutusData):
    """
    Indicates that there is a script associated with this output, which has the given hash.
    """

    CONSTR_ID = 0
    script_hash: DatumHash

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var script_hash : bytes
class SomeStakingCredential (staking_credential: StakingHash | StakingPtr)

Indicates that this address has staking credentials. Its funds can be delegated by the credentialed user.

Expand source code
@dataclass(unsafe_hash=True)
class SomeStakingCredential(PlutusData):
    """
    Indicates that this address has staking credentials.
    Its funds can be delegated by the credentialed user.
    """

    CONSTR_ID = 0
    staking_credential: StakingCredential

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var staking_credentialStakingHash | StakingPtr
class Spending (tx_out_ref: TxOutRef)

Script purpose indicating that the given transaction output is being spent, which is owned by the invoked contract

Expand source code
@dataclass(unsafe_hash=True)
class Spending(PlutusData):
    """
    Script purpose indicating that the given transaction output is being spent, which is
    owned by the invoked contract
    """

    CONSTR_ID = 1
    tx_out_ref: TxOutRef

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var tx_out_refTxOutRef
class StakePool (verification_key_hash: bytes)

StakePool(verification_key_hash: bytes)

Expand source code
@dataclass(unsafe_hash=True)
class StakePool(PlutusData):
    CONSTR_ID = 2
    verification_key_hash: PubKeyHash

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var verification_key_hash : bytes
class StakingHash (value: PubKeyCredential | ScriptCredential)

Indicates that the stake of this address is controlled by the associated credential

Expand source code
@dataclass(unsafe_hash=True)
class StakingHash(PlutusData):
    """
    Indicates that the stake of this address is controlled by the associated credential
    """

    CONSTR_ID = 0
    value: Credential

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var valuePubKeyCredential | ScriptCredential
class StakingPtr (slot_no: int, tx_index: int, cert_index: int)

Indicates that the stake of this address is controlled by the associated pointer.

In an address, a chain pointer refers to a point of the chain containing a stake key registration certificate. A point is identified by the 3 coordinates in this object.

Expand source code
@dataclass(unsafe_hash=True)
class StakingPtr(PlutusData):
    """
    Indicates that the stake of this address is controlled by the associated pointer.

    In an address, a chain pointer refers to a point of the chain containing a stake key registration certificate.
    A point is identified by the 3 coordinates in this object.
    """

    CONSTR_ID = 1
    # an absolute slot number
    slot_no: int
    # a transaction index (within that slot)
    tx_index: int
    # a (delegation) certificate index (within that transaction)
    cert_index: int

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var cert_index : int
var slot_no : int
var tx_index : int
class TrueData

A Datum that represents True in Haskell implementations. It is thus used as an encoding for True in the ScriptContext.

Example value: TrueData()

Expand source code
@dataclass(unsafe_hash=True)
class TrueData(PlutusData):
    """
    A Datum that represents True in Haskell implementations.
    It is thus used as an encoding for True in the ScriptContext.

    Example value: TrueData()
    """

    CONSTR_ID = 1

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID
class TxInInfo (out_ref: TxOutRef, resolved: TxOut)

The plutus representation of an transaction output, that is consumed by the transaction.

Expand source code
@dataclass(unsafe_hash=True)
class TxInInfo(PlutusData):
    """
    The plutus representation of an transaction output, that is consumed by the transaction.
    """

    CONSTR_ID = 0

    out_ref: TxOutRef
    resolved: TxOut

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var out_refTxOutRef
var resolvedTxOut
class TxInfo (inputs: List[TxInInfo], reference_inputs: List[TxInInfo], outputs: List[TxOut], fee: int, mint: Dict[bytes, Dict[bytes, int]], certificates: List[DCertDelegRegKey | DCertDelegDeRegKey | DCertDelegDelegate | DCertPoolRegister | DCertPoolRetire | DCertGenesis | DCertMir], withdrawals: Dict[StakingHash | StakingPtr, int], validity_range: POSIXTimeRange, signatories: List[bytes], redeemers: Dict[Minting | Spending | Withdrawing | Publishing | Voting | Proposing, pycardano.plutus.PlutusData | dict | int | bytes | pycardano.serialization.IndefiniteList | pycardano.serialization.RawCBOR | pycardano.plutus.RawPlutusData], datums: Dict[bytes, pycardano.plutus.PlutusData | dict | int | bytes | pycardano.serialization.IndefiniteList | pycardano.serialization.RawCBOR | pycardano.plutus.RawPlutusData], id: bytes, votes: Dict[ConstitutionalCommitteeMember | DelegateRepresentative | StakePool, Dict[GovernanceActionIdVoteNo | VoteYes | VoteAbstain]], proposal_procedures: List[ProposalProcedure], current_treasury_amount: BoxedInt | NoValue, treasury_donation: BoxedInt | NoValue)

A complex agglomeration of everything that could be of interest to the executed script, regarding the transaction that invoked the script

Expand source code
@dataclass(unsafe_hash=True)
class TxInfo(PlutusData):
    """
    A complex agglomeration of everything that could be of interest to the executed script, regarding the transaction
    that invoked the script
    """

    CONSTR_ID = 0
    inputs: List[TxInInfo]
    reference_inputs: List[TxInInfo]
    outputs: List[TxOut]
    fee: Lovelace
    mint: Value
    certificates: List[Certificate]
    # NOTE: Withdrawals are ordered by ascending Credential. Yet, note that `Script` credentials are treated as **lower values** than `VerificationKey` credentials.
    withdrawals: Dict[StakingCredential, int]
    validity_range: POSIXTimeRange
    # NOTE: Redeemers are ordered by ascending ScriptPurpose.
    signatories: List[PubKeyHash]
    redeemers: Dict[ScriptPurpose, Redeemer]
    datums: Dict[DatumHash, Datum]
    id: TxId
    # NOTE: Votes are ordered by ascending Voter and GovernanceActionId. First constructor variants in a type are treated as lower indices; except for Credential where `Script` credentials are treated as **lower values** than `VerificationKey` credentials.
    votes: Dict[Voter, Dict[GovernanceActionId, Vote]]
    proposal_procedures: List[ProposalProcedure]
    current_treasury_amount: OptionalLovelace
    treasury_donation: OptionalLovelace

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var certificates : List[DCertDelegRegKey | DCertDelegDeRegKey | DCertDelegDelegate | DCertPoolRegister | DCertPoolRetire | DCertGenesis | DCertMir]
var current_treasury_amountBoxedInt | NoValue
var datums : Dict[bytes, pycardano.plutus.PlutusData | dict | int | bytes | pycardano.serialization.IndefiniteList | pycardano.serialization.RawCBOR | pycardano.plutus.RawPlutusData]
var fee : int
var id : bytes
var inputs : List[TxInInfo]
var mint : Dict[bytes, Dict[bytes, int]]
var outputs : List[TxOut]
var proposal_procedures : List[ProposalProcedure]
var redeemers : Dict[Minting | Spending | Withdrawing | Publishing | Voting | Proposing, pycardano.plutus.PlutusData | dict | int | bytes | pycardano.serialization.IndefiniteList | pycardano.serialization.RawCBOR | pycardano.plutus.RawPlutusData]
var reference_inputs : List[TxInInfo]
var signatories : List[bytes]
var treasury_donationBoxedInt | NoValue
var validity_rangePOSIXTimeRange
var votes : Dict[ConstitutionalCommitteeMember | DelegateRepresentative | StakePool, Dict[GovernanceActionIdVoteNo | VoteYes | VoteAbstain]]
var withdrawals : Dict[StakingHash | StakingPtr, int]
class TxOut (address: Address, value: Dict[bytes, Dict[bytes, int]], datum: NoOutputDatum | SomeOutputDatumHash | SomeOutputDatum, reference_script: SomeScriptHash | NoScriptHash)

The plutus representation of an transaction output, consisting of - address: address owning this output - value: tokens associated with this output - datum: datum associated with this output - reference_script: reference script associated with this output

Expand source code
@dataclass(unsafe_hash=True)
class TxOut(PlutusData):
    """
    The plutus representation of an transaction output, consisting of
    - address: address owning this output
    - value: tokens associated with this output
    - datum: datum associated with this output
    - reference_script: reference script associated with this output
    """

    CONSTR_ID = 0

    address: Address
    value: Value
    datum: OutputDatum
    reference_script: Union[NoScriptHash, SomeScriptHash]

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var addressAddress
var datumNoOutputDatum | SomeOutputDatumHash | SomeOutputDatum
var reference_scriptSomeScriptHash | NoScriptHash
var value : Dict[bytes, Dict[bytes, int]]
class TxOutRef (id: bytes, idx: int)

A reference to a transaction output (hash/id + index)

Expand source code
@dataclass(unsafe_hash=True)
class TxOutRef(PlutusData):
    """
    A reference to a transaction output (hash/id + index)
    """

    CONSTR_ID = 0

    id: TxId
    idx: int

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var id : bytes
var idx : int
class UpperBoundPOSIXTime (limit: NegInfPOSIXTime | FinitePOSIXTime | PosInfPOSIXTime, closed: TrueData | FalseData)

Upper bound for the execution of this transaction

Expand source code
@dataclass(unsafe_hash=True)
class UpperBoundPOSIXTime(PlutusData):
    """
    Upper bound for the execution of this transaction
    """

    CONSTR_ID = 0
    limit: ExtendedPOSIXTime
    closed: BoolData

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var closedTrueData | FalseData
var limitNegInfPOSIXTime | FinitePOSIXTime | PosInfPOSIXTime
class VoteAbstain

VoteAbstain()

Expand source code
@dataclass(unsafe_hash=True)
class VoteAbstain(PlutusData):
    CONSTR_ID = 2

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID
class VoteNo

VoteNo()

Expand source code
@dataclass(unsafe_hash=True)
class VoteNo(PlutusData):
    CONSTR_ID = 0

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID
class VoteYes

VoteYes()

Expand source code
@dataclass(unsafe_hash=True)
class VoteYes(PlutusData):
    CONSTR_ID = 1

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID
class Voting (voter: ConstitutionalCommitteeMember | DelegateRepresentative | StakePool)

Voting for a type of voter using a governance action id to vote yes / no / abstain inside a transaction. The voter is who is doing the governance action.

Expand source code
@dataclass(unsafe_hash=True)
class Voting(PlutusData):
    """
    Voting for a type of voter using a governance action id to vote
    yes / no / abstain inside a transaction.
    The voter is who is doing the governance action.
    """

    CONSTR_ID = 4
    voter: Voter

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var voterConstitutionalCommitteeMember | DelegateRepresentative | StakePool
class Withdrawing (staking_credential: StakingHash | StakingPtr)

For scripts that validate reward withdrawals from a reward account. The argument identifies the target reward account.

Expand source code
@dataclass(unsafe_hash=True)
class Withdrawing(PlutusData):
    """
    For scripts that validate reward withdrawals from a reward account.
    The argument identifies the target reward account.
    """

    CONSTR_ID = 2
    staking_credential: StakingCredential

Ancestors

  • pycardano.plutus.PlutusData
  • pycardano.serialization.ArrayCBORSerializable
  • pycardano.serialization.CBORSerializable

Class variables

var CONSTR_ID

Instance variables

var staking_credentialStakingHash | StakingPtr