{-# OPTIONS --safe #-}

open import Ledger.Conway.Specification.Transaction

module Ledger.Conway.Specification.Script.ScriptPurpose (txs : TransactionStructure) where

open import Ledger.Prelude
open TransactionStructure txs
open import Ledger.Conway.Specification.Certs govStructure


data ScriptPurpose : Type where
  Cert     : DCert           ScriptPurpose
  Rwrd     : RewardAddress   ScriptPurpose
  Mint     : ScriptHash      ScriptPurpose
  Spend    : TxIn            ScriptPurpose
  Vote     : GovVoter        ScriptPurpose
  Propose  : GovProposal     ScriptPurpose

record TxInfo : Type where
  field realizedInputs : UTxO
        txOuts         : Ix  TxOut
        fee            : Value
        mint           : Value
        txCerts        : List DCert
        txWithdrawals  : Withdrawals
        txVldt         : Maybe Slot × Maybe Slot
        vkKey          :  KeyHash
        txdats         :  Datum
        txId           : TxId